CN103782573A - Masking server outages from clients and applications - Google Patents

Masking server outages from clients and applications Download PDF

Info

Publication number
CN103782573A
CN103782573A CN201280043498.9A CN201280043498A CN103782573A CN 103782573 A CN103782573 A CN 103782573A CN 201280043498 A CN201280043498 A CN 201280043498A CN 103782573 A CN103782573 A CN 103782573A
Authority
CN
China
Prior art keywords
session
client
affairs
information
database
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201280043498.9A
Other languages
Chinese (zh)
Other versions
CN103782573B (en
Inventor
K·S·尼尔
C·L·科尔瑞恩
D·N·萨博
N·R·艾科达
S·H·罗艾斯科
周彤
J·D·拉瓦瑞恩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oracle International Corp
Original Assignee
Oracle International Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US13/229,641 external-priority patent/US8549154B2/en
Priority claimed from US13/448,258 external-priority patent/US8984170B2/en
Priority claimed from US13/448,267 external-priority patent/US8924346B2/en
Priority claimed from US13/542,278 external-priority patent/US9600371B2/en
Application filed by Oracle International Corp filed Critical Oracle International Corp
Priority to CN201710929783.5A priority Critical patent/CN107688487B/en
Publication of CN103782573A publication Critical patent/CN103782573A/en
Application granted granted Critical
Publication of CN103782573B publication Critical patent/CN103782573B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1443Transmit or communication errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1474Saving, restoring, recovering or retrying in transactions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/142Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/148Migration or transfer of sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques

Abstract

Methods, devices, and computer-readable media are provided for restoring state that was built up on a first session between a first server instance and a client to a second session between a second server instance and the client. Non-transactional session state that existed for the first session is preserved by repeating non-transactional commands in the second session. Transactions are executed in the second session when the transactions did not complete in the first session. The first server instance sends, to the client in the first session, information to maintain for a possible replay of commands that were sent in a request to the first server instance for execution in the first session. If the first session becomes unavailable, the maintained information may be used by the second server instance to restore the database session, masking the outage from users, applications, and clients.

Description

Client and application are covered to server stoppage in transit
To the cross reference of related application
The application relates to and requires the patent application serial numbers 13/229 that is entitled as " RecoveringStateful Read-Only Database Sessions " of the priority proposition on September 9th, (1) 2011 of following application, 641, its full content is incorporated in this by reference, just as fully setting forth here; The patent application serial numbers 13/448,258 that is entitled as " Idempotence For Database Transactions " that on April 16th, (2) 2012 proposes, its full content is incorporated in this by reference, just as fully setting forth here; The patent application serial numbers 13/448,267 that is entitled as " Idempotence For Database Transactions " that on April 16th, (3) 2012 proposes, its full content is incorporated in this by reference, just as fully setting forth here; And the patent application serial numbers 13/542,278 that is entitled as " Preserving Server-Client Session Context, " of submission on July 5th, (4) 2012, its full content is incorporated in this by reference, just as fully setting forth here.Any of claim scope that therefore applicant cancels in female case application or its examination history denies.
The application also relates to the U.S. Patent No. 7 that is entitled as " Transparent Migration Of Stateless Sessions Across Servers " that on August 12nd, (1) 2004 proposes, 747,754, its full content is incorporated in this by reference, just as fully setting forth here; The U.S. Patent No. 7,502,824 that is entitled as " Database Shutdown With Session Migration " that on May 1st, (2) 2006 proposes, its full content is incorporated in this by reference, just as fully setting forth here; The U.S. Patent No. 7,552,218 that is entitled as " Transparent Session Migration Across Servers " that on August 12nd, (3) 2004 proposes, its full content is incorporated in this by reference, just as fully setting forth here; The U.S. Patent No. 7 that is entitled as " Capturing And Re-Creating The State Of A Queue When Migrating A Session " that on May 17th, (4) 2005 proposes, 415,470, its full content is incorporated in this by reference, just as fully setting forth here; The U.S. Patent No. 7,634,512 that is entitled as " Migrating Temporary Data Of A Session " that on April 4th, (5) 2007 proposes, its full content is incorporated in this by reference, just as fully setting forth here; The U.S. Patent No. 13/076,313 that is entitled as " Application Workload Capture And Replay System " that on March 30th, (6) 2011 proposes, its full content is incorporated in this by reference, just as fully setting forth here.
Technical field
The art relates to transactional and the non-routine work that the client in resuming operation arrives server.
Background technology
Server and client side
Server is the function software processing that service is provided to one or more clients.Server can be operation provides server instance from the some different server instance of the related software of service to client.Client server connect on server communication.Particularly, order is sent to server by client, and server fill order and alternatively result is sent back to client.As used herein, server " operation " refers to function, process, other action of being taked according to one or more orders of carrying out client by server.Individual command can trigger multiple server operations or can operate corresponding to individual server.For example, number order can return results by request server except executing data operating function.Other order only can be asked the confirmation of executing data operational order, or can not ask any response.
Client can be asked the execution of the Management Information Base of specifying in request.In response, server can be carried out this group command and confirm that to client this group command is performed.For example, the indication that server can provide result or can only provide this group command to be performed to client.Being connected between server and client can become unavailable in the planned or unplanned any time.For example, server can be failed, or other resource being connected between the network equipment or back-level server and client can be failed.If between server and client be connected to server to Management Information Base made response before become unavailable, client be can not determine and whether completed this group command.
Database server and the database application example as server and client side is provided respectively here.But various technology described herein can be applied to any client-server system.
Database instance
Database comprises the data and the metadata that are stored on the one or more memory devices such as hard disk, random access memory rod, cluster or cloud storage system.These type of data and metadata can be stored in database in logic, for example, and according to relation and/or Object-relational Database structure.Database application makes database instance come with the example (" database instance ") of database server mutual to being stored in the order of the data executable operations in database by submitting to database instance.Database command is access or revises the request from the data of database.Order can make database instance to the data executable operations in database and/or return to the data that come from database.
In multinode Database Systems, database can be served by multiple database instances, and each database instance can be configured to access all or part database.The example of server is integrated software assembly such as one or more processing of carrying out on one or more computing equipments and for carry out the combination of distribution of the computational resource such as memory, memory device or processor cycle of integrated software assembly on processor.Database instance is integrated software assembly and for accessing, revise or utilize on the contrary the combination of the distribution of the computational resource of database.Database instance can be grouped into the domain logic of call business.Multiple database instances can be mounted or be configured on the machine of individual machine or separation.In the time of deal with data library command, database instance can accessing database or is come from the high-speed cache of the information of database.In one example, database is stored in nonvolatile memory, and high-speed cache is stored in volatile memory.
In the time that multiple database sessions are shared the access of identical data, the user command of carrying out in session can lock a part of database simultaneously this part used by the database instance of service conversation.For example, user conversation can lock for exclusive and read and/or the part of write access, and other user conversations are prevented from access and/or revise this part in the time that described part is locked.Then in the time that database instance completes the part in access and/or Update Table storehouse, user conversation discharges locking.After locking is released, other example can access and/or revise this part or obtain the locking to this part.
Database command can be submitted to database instance with the form of the database statement that meets the database language of being supported by database instance.A non-restrictive example of the database language of being supported by many database instances is the data manipulation language (" DML ") that is called SQL (" SQL "), comprise by as
Figure BDA0000473888470000041
this type of database server (for example,
Figure BDA0000473888470000042
database 11g) proprietary form of SQL supported.SQL DDL (" DDL ") instruction is issued to database server to create or configuration database object, such as table, view or complicated type.Although SQL is referred as an example, there is many other illustrative data base language and the interface to database display, wherein any one can be used in conjunction with technology described herein.
Process language/SQL (" PL/SQL ") is by providing the structure, the generation structure language more powerful than stsndard SQL that obtain in process language to expand SQL.PL/SQL order is organized into the piece of variable declaration, the subcommand that comprises process and sql command and abnormality processing order.PL/SQL order can be sent to database server so that proper PL/SQL order while being performed database server carry out exercises.Database server also can receive and carry out order, the remote process call order based on Java or meet the order of other programming language or structure.
Multiple database commands can be sent to database instance with execution work from database client with the form of single request.Database command can be by database instance processing, and database instance can return results to database client with the form of the single response to all orders that propose in request.Single ask back and forth with respond in process multiple orders and can produce the efficient utilization that database is connected.In other words,, in the time that multiple order is submitted in the request that allows usage data storehouse to connect to, the general usage data of client storehouse connects with the less request of submission continually.
Application is connected with logic
Server such as middle stratum server is to provide database instance to connect from the application of database request information.Middle stratum server is to provide the server of the access to one or more databases, the server of the connection to one or more database servers to one or more database server distribution work or management.Application is that the usage data storehouse operating on one or more computing equipments connects with any logic from database retrieval information.Can present or show to the user of application the information of retrieval.For example, can apply from browser access, wherein apply from user receive input and to user's presentation information.Application can be the application of accessing via Web portal, by network, by user, can be the application being installed on user's machine, can be maybe the application distributing between multiple machines.
In one example,
Figure BDA0000473888470000051
Figure BDA0000473888470000052
application be specifically configured to from
Figure BDA0000473888470000053
database retrieval data, and to
Figure BDA0000473888470000054
the user of application shows information.Current existence except
Figure BDA0000473888470000055
Figure BDA0000473888470000056
application before application, and do not departing from situation of the present disclosure, can develop other database application in the future.
In one example, application is sent for the request that comes from the data in database to middle stratum server.Request can or can not be sent out in response to user's input.Middle stratum server is chosen freely connecting of database instance in the middle of connecting freely from pond.Be selected and/or customized to connect and be called as " database session " here by the database of a client or one group of client use.Database connects can be customized to meet the specific needs for the database session of particular clients, or connect can be for supporting the various database sessions for various clients to make to connect by vague generalization.Middle stratum server sends to database instance by client-requested in the connection of selecting, and database instance accessing database is to process this request.Database server, by the data in retrieval or Update Table storehouse or by retrieving or revise the data in the high-speed cache of the data that come from database, is processed request.In the time of database server processes request, database server is set up the state for database session.
Middle stratum server keeps connection pool conventionally, and it is included in the connection of database instance.Connection can refer to or physical mechanism such as physical port, or logic configuration, or both.Can connect (, database session) mapping one to one to physical connection by subsistence logic.On the other hand, can exist with the more than one logic of single physical join dependency connection and be connected.In one example, only comprise those connections that are not assigned to for the treatment of the application of request freely connecting in connection pool.In the time that work completes, connect the application that is returned to connection pool and can be used for subsequently and use from pond.
Database session is to applying disabled effect
When application usage data storehouse session is during with accessing database, be applied in and on database session, set up state.For example, application usage data storehouse session obtaining locking, create temporary variable or database object, set up user specific information, set up application-specific information, set up vernier information, create the interim layout of data or selection and/or operation that data are carried out other parts and completed for further processing in database session.If database session failure before further processing generation, the interim layout of locking, temporary variable or database object, user specific information, application-specific information, vernier information, data or selection and/or the operation partly completing become unavailable to applying, even if application is attempted in new database session with reference to this information.
In one example, if the database instance failure that database session relies on or become unavailable, database session can failure or is become unavailable.In most cases, the failure of database session causes applies unsuccessfully, because ongoing database session is lost.The user of application must restart the assembly of application or application and restart login, open vernier and retrieve data, acquisition locking, create temporary variable or database object, set up user specific information, set up application-specific information, set up vernier information, create the interim layout of data or selection and/or partly the operation of complete paired data for further processing in database session.In one example, in the time of database session failed, user can be presented blue screen or interrupt with error message.
In previous client-server system, if exist and disconnect between client and server, client is seen the error message of indication communication failure.This wrong obstructed know client submit to carried out any submission (commit) operation or whether process transfer run to and carried out the submissions of all expections and session status changes or part failure, or also worse, still departing from client and moving.
If whether client wants is known to the submission of database submitted, client can increase customization exception code to inquire about for the result at the each possible submission point of application.Suppose system failure anywhere, this is conventionally unrealistic, because inquiry must be specific to each submission.Application be established and in produce in after, this is completely unrealistic.In addition,, because affairs can be submitted to immediately after carrying out inquiry, can not provide answer accurately so inquire about.Even, after communication failure, server still can move submission, and does not also know that client disconnects.For PL/SQL or Java operation or be submitted to other process of database, do not exist about process and submit the record that whether has run to or partly abandoned to.In the time that it can be submitted to, for this process, follow-up work may not be done.
Could not identify last submit to submitted to or soon the some time should submit to or not run to and can cause the affairs of repetition to be submitted to, and may attempt " logic damage " of other form of sending again lasting change as user and software.
Prior art does not provide the information of the work of being carried out by resource when becoming unavailable in resource.For example, last result operating by resource processing is not known in the case of planned or unplanned stoppage in transit in application.If server is carrying out when Management Information Base and stopped before client sends the response for this group command at server, client does not know whether this group command was carried out by server before stoppage in transit.Even the application of high complexity can be exposed to terminal use by stoppage in transit.
Due to the commercial opportunity of missing, utilize decision that bad data make, eliminate failure cost and the lost time in restarting application or again working, experiencing user that resource stops transport may be dejected and can lose income.Some application warning users do not want click on submission button twice, and not being user while carefully not warning, if allow two submissions to complete, can create the affairs of repetition.
In another example, once failure of database session, user can be prevented from inputting any information or cause that any order was submitted to database before reloading the page.Meanwhile, in the situation that not checking that what data is stored in database, reload the submission that the page can cause repetition.If the information needing no longer can be used.Application can stop user to submit to depend on any order of the state of losing in failed database session, or application behavior improperly.In specific example, the field having presented to user can become ash with indication, is stored in the data in database for fear of damage, and field no longer can be revised by application.
Even if database session is unsuccessfully transferred to the second database instance, the second database instance can not have any information about be submitted to the database session beyond the things of database before failure.For fear of the data in corrupt data storehouse, application can reset to the information showing to user the information of the data that coupling submitted to database.In other words,, in the time of database instance failure, user can lose the temporary information that just can use user before failure.Some drop-outs can be corresponding to the information that is utilized the application of current disabled database session and/or user and shows, revise, select or arrange, or originally will be returned to application on current disabled database session and/or user's information.User is forced to again input the field of data conventionally again.
By user input, the loss of the information revising, select and/or arrange can cause user dejected and after application or application component have been restarted information input again, revise again, select again and/or arrange again in time of wasting.The information of losing can be from other, for example, by the information of retrieving in video, voice, Email or text message by user.In some cases, the information of loss can be no longer searchable.In the time that user is being helped by support ISP in the time unsuccessfully occurring, drop-out can be expensive especially.Information dropout can need and support that ISP further communicates by letter, or even can make user lose faith in application, middle stratum server or database server or the company of application, middle stratum server and/or database server is provided.In addition, before failure, user can be in the information of selection, input or modification time sensitivity.Failure after need user again input time sensitivity information can cause delay, it causes the loss of business, value or the reputation of the trade investment of user to commercial accounts or user.Need to input again and also can cause the loss for user's chance.For example, user can miss item or the chance that user had previously selected.
The method of describing in this section is the method that can be engaged in, and must not be the method for conceiving in the past or being engaged in.Therefore, unless otherwise stated, do not suppose that any one in the method for describing in this section obtains admitting of prior art because they are only included in this section.
Applicative notifications fast
The application of the stoppage in transit of the report of other resource in application developer development process basic software, hardware, basic communication layers or client-server system.For example, since Oracle10g, applicative notifications (" FAN ") arrives (, becoming available) or stops (in resource fast, become unavailable) time transmit notice to application, and application developer can be in response to notifying self-defined their application to change application behavior.
Accompanying drawing explanation
In the accompanying drawings:
Fig. 1 illustrates for recurring driver rank writing task, instruct driver, managing example server-client workflow of recurring context and completing affairs idempotent.
Fig. 2 illustrate for by Continuous management, recur the example server-client workflow that drives and shift for realizing the fault of Database Systems of the idempotent protocol-driven of at most once carrying out of affairs.
Fig. 3 illustrates exemplary architecture and the assembly placement of recurring the recurrence of (being defined as recurring driver) and logical server Network Based for client-driver.
Fig. 4 illustrates for instructing client stores in order or not to be may recurring of businesslike order and method that the exemplary computer of the information that maintains is carried out.
Fig. 5 illustrates the method for carrying out for the exemplary computer that can or can not be businesslike order with recurrence from client information.
It can be to carry out the example computer system of exemplary method described herein by customized configuration that Fig. 6 shows.
Embodiment
In specification, for illustration purpose, set forth many details to provide thorough understanding of the present invention below.But, by clear, do not have these details can put into practice the present invention.In other example, illustrate that with block diagram form known structure and equipment are to avoid unnecessarily fuzzy the present invention.
General Introduction
Here the technology of the open state for restore database session.Described technology also can be for determining that businesslike Management Information Base has completed or partly completed.For example, if affairs have been submitted to, other affairs are not submitted to, if exist more information submission result to return for this group command, if or exist in addition more work to carry out this group command by server, this group command can partly be completed.Although described technology can be described with reference to specific embodiment, described herein functional can by operate in special-purpose software on one or more computing equipments and/or hardware implement method execution, by the instruction of one group of one or more storage of the execution of the method in the time being performed or provide with one group of one or more mechanism of manner of execution by being configured with specialized hardware and/or software.
Utilize technology described herein, the state being based upon on the first database session between first server example and client can be restored to the second database session between second server example and client.Affect the execution of ordering in session and be not still called as non-transaction session state to the state of database lastingly.Non-transaction session state such as the variable to the first conversation establishing, object, reference and arranging can be preserved by repeat non-transaction commands in the second session.Only have in the time that affairs are not submitted in the first session, affairs just can be carried out in the second session.
In one embodiment, in first session of first server example between first server example and client, send may the recurring of order sending in the request for the first server example to for carrying out in the first session and the information maintaining to client.If wish the state of the first session to be reconstructed into the second session if the first session becomes unavailable or client, order can be recurred in the second session between second server example and client.If recurred in the second session according to the information maintaining, order the state of setting up in the first session being reconstituted between first server example and client, and needn't again be made at any change to database of having made in the first session.If order has fully been carried out or partly carried out in the first session, order can make first server example submit to affairs so that database is made a change.In one embodiment, order makes first server example complete affairs so that database is made a change really.
Fig. 4 illustrates for instructing client stores in order or not to be may recurring of businesslike order and method that the exemplary computer of the information that maintains is carried out.In step 400, by checking from the first session out of connection pool and/or mark session to start request, between first server example and client, set up the first session.In step 401, the beginning of request is signaled by client and by first server example detection.In step 402, first server example receives one or more orders for carrying out in the first session from client.If described one or more order comprises zero order or is performed at least one order of submitting to affairs so that database is made a change.In step 404, first server example sends for may recur and the information that maintains in second session of one or more orders between second server example and client to client.Information support is recurred, and need not be made at any change to database of having made in the first session.For Management Information Base in request, first server example can repeating step 402 and 404.At the Management Information Base in request, after first server example repeating step 402 and 404, in step 405, the end of request is signaled by client and by first server example detection.For the end of request is signaled, session can be returned to connection pool, and/or request can be marked as end.
First server example can by send client indicate directs client to maintain information, and the information maintaining can by second server example use with by the recovering state of the first database session to the second database session.In one embodiment, indication can be born in the message sending between client and first server example.For example, indication can be born in the message that is included in exectorial result in the first session.Example indication includes, but are not limited to " being placed in queue N ", " forbidding recurring " and " knowing queue N ".
Request is the unit that is submitted to the work of server instance on database session from application.Request can comprise or the database command of reference such as SQL and PL/SQL, with other data base call of the single network request being connected in individual data storehouse.Request can be by connecting made the calling of then registering and delimit leaving database from connection pool.
In one embodiment, middle stratum server connects logic the application that is assigned to request access database.Logic connects one that is mapped to directly or indirectly in multiple physical connections.Logic is connected to can be by reallocation to new physical connection in the situation that the new logic of not reallocating is connected to application.Logic connects can be exposed to application, and described application can continue to connect as the physical connection of bottom and change with reference to identical logic.In one example, certain logic connection is represented as and is exposed to the connecting object of application and is mapped to another connecting object, and another connecting object can or can not be exposed to this application, and it can or can not be that another logic connects.The hierarchy connecting via logic, certain logic connection is mapped to physical connection.
In one embodiment, first server example makes client maintain the information that the affairs in queue or the memory location different from the information or not being associated affairs are associated.By this way, the information about affairs in the time that affairs complete can be eliminated or zero clearing, as long as the non-transaction status being used by more late order is not changed in the order in transaction queues yet.For example, can directs client storage relevant with affairs in the first queue first group of information of first server example and not relevant second group of information with affairs in the second queue.In the time completing affairs, how first server example can be changed and use according to unabiding state, and directs client is removed or zero clearing is stored in the information in the first queue.If attempted recovering state to the second session, client can be recurred number order other order of zero clearing not recurring before recurring.
In one example, first server example makes client maintain affairs for carrying out in the first session and the information group separating of non-Transaction Sentence.In example, first group of information can be identified and make the statement that does not also become lasting Iterim Change in database.In the time that Iterim Change is caught lastingly or is submitted to database, if not making non-transaction status yet, these statements change, first server example can indicate client to remove or first group of information of zero clearing effectively.Therefore the statement of carrying out before second group of information can be identified the affairs that complete in the first session such as non-Transaction Sentence and is not afterwards a part for affairs.Depend on the operator scheme detecting, removing first group of information, can to retain second group of information complete at client place, still can be used for recurring with the non-Transaction Sentence that makes to identify in second group of information.If the non-Transaction Sentence of recurrence in second group of information can make second server example rebuild the non-transaction status of originally setting up in the second session in the first session or the command group being sent in request by client has been performed, by the non-transaction status of having set up in the first session.
On the contrary, if the statement in the first group command, i.e. affairs, also make non-transaction status and change, and in the time that these affairs are submitted to, first and second groups of information recurrences can be prohibited and two queues are eliminated.These statements of affairs inside can be arranged on non-persistent in database and after affairs are submitted to irreclaimable state, unless maintenance the 3rd group command.For example, variable can be after INSERT or UPDATE statement, but is defined before INSERT or UPDATE have been submitted to database.Can be with removing and forbidding avoiding when the non-transaction status of try reconstruct with reference to the risk of the information of loss and avoid the risk of repetition affairs.In this second situation, recurring is not effectively, because it recurs by comprising the affairs of submitting to, unless such as using the 3rd group command to rebuild this state in the situation that not continuing transaction status.
In one embodiment, order can not be placed in any queue.For example, if the information of being asked by SELECT is the metadata of demand again in the time recurring, SELECT statement can not be to recur to need.If they need these orders recurring, can be queued as required.In the time that request is carried out, order can be removed from queue because all data have been returned from them and they not set up non-transaction status required.
For example, if all session status change (NLS arranges, PL/SQL wrap state) form appearance with partially-initialized, or on the contrary outside all affairs, and can in the time that fault shifts, be encapsulated in call back function, limit session and there is static state.If client operates in static state, the information that application did not rely on afterwards or arranged with reference to the non-Transaction Sentence of carrying out during the affairs by submitting to, or after asking initialization, can not make non-affairs change.If affairs complete, the state creating during non-persistent affairs does not need to be restored to the second session, once because after affairs have submitted to, order does not afterwards rely on or with reference to described information.Because order does not afterwards rely at the inner non-transaction information arranging of affairs, so in the time that affairs are submitted to, the information being stored in transaction queues can zero clearing safely from transaction queues.This class application is commonly called database agnosticism.It does not change PL/SQL variable or the term of execution of request, changes other structure of non-transaction status.
Do not encapsulated fully and in call back function, can not be caught fully in the time that fault shifts by initialization if session status changes, and be included in request, limited session for having dynamically.If applied just with dynamic mode operation, the information that application can maybe can not rely on or reference is arranged by the non-Transaction Sentence of carrying out during affairs.Because the affairs of having carried out in the first session can not repeat in the second session, may be not useable for recurring in the second session after affairs are submitted to and completed so be enclosed within non-Transaction Sentence within affairs, unless maintained the 3rd group command.
If non-transaction status does not change within request, static state can be detected.For static schema, after submitting to, transaction queues is eliminated and recurs and can continue.If non-transaction status changes within request, dynamically can be detected.Whether be dynamically further characterized as the non-transaction status changing during the affairs of submitting to after affairs are submitted to by ordering reference afterwards.
In an embodiment for static state, first server example receive request with fill order and order execution before or during, detect affairs in request and not only comprise to database and submit the transaction commands changing to, and comprise that the state that changes session still can not submit the order of any change to database.Not every request all comprises transaction commands, and the transaction commands of non-transaction session state has let alone been set.Many application acquiescences do not arrange non-transaction session state or at least agree to not rely on (or using afterwards) any non-transaction session state of equipment during affairs in affairs.The affairs that non-transaction session state is not set can be eliminated to make these affairs not to be repeated in the time that they complete.
In for a dynamic embodiment, in the time that the affairs that submission detected arrange non-transaction session state, then first server example can determine whether the order afterwards in this request uses non-transaction session state.If the order afterwards in request is not used non-transaction session state, non-transaction session state can affairs complete or afterwards along with affairs are eliminated.When first server example sends instruction client when deleting the information about affairs that can be stored in the first data structure such as queue, remove and occur.In this case, because state and affairs are eliminated, and because the order afterwards of state in not requested used, so the order in request can be recurred in the situation that not rebuilding state and not repeating affairs.
In for a dynamic embodiment, if the order afterwards in request can be used non-transaction session state, in the time that affairs complete, non-transaction session state can not be removed along with affairs.In this case, first server example can send to client by information, is performed if this information is described, and will non-transaction session state be set and not repeat the order of affairs.In one example, these orders can comprise the many or all orders that come from affairs, and needn't take locking and get rid of submit operation.In other words,, even if affairs complete, first server example also can send to client by the order of affairs, succeeded by rolling back action.Order can be further processed to carry out the non-affairs action such as the locking, the Update Table that take out the sharing data objects in database, and does not also violate integrity constraint.
In for a dynamic embodiment, if the order afterwards in request can be used non-transaction session state, and if non-transaction session state can not be resumed in the situation that not submitting affairs to, the definite order afterwards of first server example can depend on the checkpoint of non-transaction session state.Server can indicate client records not appear at the specific command that still can be used by second server example the non-transaction session state change that recovers to be made by affairs in affairs.In one example, utilize transparent conversation shift, state is registered as the complete or δ state of being made by affairs and changes.This state changes one or more orders that can be changed by implementation state in the situation that not repeating any affairs and represents.
For dynamically, consider that wherein request comprises the example with this order of SELECT, INSERT, ALTER, PL/SQL, COMMIT and SELECT statement.The one SELECT can be placed in non-transaction queues.INSERT can be placed in transaction queues along with ALTER together with PL/SQL, and it carries out during affairs.The execution of COMMIT is cleared when transaction queues is operated in static state.Change if ALTER and PL/SQL only make non-affairs, these can be placed in non-transaction queues.This processes, and to retain transaction queues be that sky and a SELECT, PL/SQL and ALTER are in non-transaction queues.
In another example, if changing and order within affairs, non-transaction status can not be positioned to non-transaction queues, in one embodiment, server instance can directs client be removed all queues and forbid recurring, until request finishes.In the time that next one request starts, recur and will restart.Only have when non-transaction status changes and in the affairs of successfully submitting to, be detected and when non-transaction status is relied on by order afterwards, recurrence is prohibited.Recur and submitting to or be prohibited in order place that relies on this state.Most of request comprises no more than one to be submitted to and submission is used as to last statement, and at least in these cases, forbids not being problem.Forbid that for network request be effective technology, because it is in not burden of place's running time.
And if for carry out the request submitted to immediately submit to carry out but submit to result and indication not by client to after stop transport, the state of submission is returned in recurrence.By this way, the result of last affairs is known in user or application.In the time utilizing static state, transaction queues is eliminated and continues until request finishes for catching of request.When utilizing when dynamic, after successfully submitting to, recurrence is prohibited or the 3rd group command is maintained to recover that state.
In one embodiment, the information that may recur maintaining the second session from client in second session of second server example between second server example and client, send the order to carry out for the request from client to first server example the first session.Second server example according to the information that maintained by client recur order in the second session be reconstituted in the first session first server example and client between the state set up, and needn't again be made at any change to database of having made in the first database session.If order has fully been carried out or partly carried out in the first session, order can make first server example complete affairs so that database is made a change.In one embodiment, order makes first server example complete affairs so that database is made a change really.
Fig. 5 illustrates the method for carrying out for the exemplary computer that can or can not be businesslike order with recurrence from client information.Figure 4 and 5 can separately or together be carried out.In step 500, between second server example and client, set up the second session, for may the recurring of order sending in advance in the first session the request from client to first server example.501A in step, exists in another stoppage in transit situation, and second server example can be rebuild quick applicative notifications.In step 501B, the beginning of request is signaled by client and by second server example detection.In step 502, second server example receives the information of the recurrence that is maintained the one or more orders for sending the request from client to first server example in the first session from client.If described one or more order comprises zero order or is performed at least one order of submitting to affairs so that database is made a change.In step 504, second server example is according to the information recurrence being maintained by client and confirm the recurrence for one or more orders of the second session, to be reconstituted in the state of setting up in the first session between first server example and client, and needn't again be made at any change to database of having made in the first database session.For multiple orders of the previous transmission for carrying out in the first session, step 502 and 504 can be repeated.After the second server example of multiple order repeating steps 502 and 504 at to(for) the previous transmission for carrying out in the first session, and if the each iteration for step 504 is confirmed successfully,, in step 505A, recur end and client and turn back to the acquisition mode for same request.In step 505B, the end of request is signaled by client and by second server example detection.
In one embodiment, comprise different groups of information for recurring the information receiving, one group of affairs that are not done with in the first database session or submit to are associated and another group is not associated with affairs.The information that the affairs that complete with in the first session or submit to are associated can complete and be eliminated along with affairs.In other words, with complete the information that affairs are associated and can not be included in as recurring in the information receiving.
In one embodiment, second server example receives for the affairs carried out in the first session and the each group of independent information of non-Transaction Sentence.For example, first group of information can be identified and make the statement that does not also become lasting Iterim Change in database.When interim change becomes lasting or while being submitted to database, client can be removed or first group of information of zero clearing.The statement of carrying out before second group of information can be identified the affairs that complete in the first session such as non-Transaction Sentence and afterwards.Removing first group of information, can to retain second group of information complete at client place, still can be used for recurring with the non-Transaction Sentence that makes to identify in second group of information.If the non-Transaction Sentence of recurring in second group of information can make the original non-transaction status of setting up in the first session of second server example reconstruction in the second session or the command group being sent by client in request be performed, by the non-transaction status of having set up in the first session.
In one embodiment, first group of information submitted along with affairs and that be cleared also can be identified in function or the statement during affairs, carried out, even if those statements are not made any change to database.That these statements can be arranged in database is lasting, but can after affairs complete, remain on the state in the first database session.If client is being used static state, this information can be stored in transaction queues and along with affairs complete zero clearing safely from transaction queues.On the other hand, if client is being used dynamically, in the time that affairs are cleared, non-transaction information can be lost.For fear of the risk of non-transaction information that depends on loss, forbid recurring, until request finishes, to eliminate safely any possibility of logic damage.In one embodiment, second server example can attempt to recur non-transaction commands, even within non-transaction commands is enclosed in affairs, revises as required order and do not re-execute with execution and the assurance second server example of supporting non-transaction commands any affairs of having carried out in work to guarantee suitable dependency in the first session.In this embodiment, although order is carried out in affairs, they are placed in non-transaction queues to be not eliminated.
During recurring, the order of each recurrence is identified.The order of input necessarily has appropriate fail safe, appropriate agreement and appropriate environment.After carrying out, turn back to all results of client must be with them identical first term of execution.This comprises row and row order, outer binding (out bind), error code and error message.Application or client each message segment of potentially it being maked decision must be with them identical original the term of execution.If be placed on any value and original changing from the circuit of server to client end, recur and be rejected and client is seen original mistake.On the contrary, if the server side code that client executing does not return results to client, client trusts that this code is carried out and result can be different in the situation that of inference not.In this embodiment, for the verification such as the CRC calculating in original and recurrence place with the value of returning is checked.In the time that hardware supports is available, verification and cost imputed to hardware.
Before recurring and afterwards, relevant non-transaction environment must be successfully correct for recurring., such as scaling position, language, currency, sys_context etc. each result that can affect storage and must be the same with original execution is set.Calling that inspection will be recurred with assurance before appearing at and carrying out has correct ambient condition, and after carrying out, calling because current can be that client is that it keeps last of information to call, and nextly calls and must in appropriate environment, carry out.In this embodiment, contrast environment cryptographic Hash is checked environment.If checked unsuccessfully, recur and be rejected and return original mistake.
In one embodiment, order is changed number (" SCN ") or is recurred by the exectorial logical time of first server example in original system by second server example, until arrive the order that can not recur at original SCN.From that forward, order will be recurred at current SCN place.Along with order is recurred, the visible result of client that comes from recurrence is compared with the visible result of the client obtaining during running time, as indicated in recurrence context.
In one embodiment, second server example is described below the information of order from client: if this order is performed, the non-transaction session state arranging during the affairs that complete in the first session will be arranged on, and second server example uses this information in the second session, to rebuild non-transaction session state and does not repeat affairs.In one example, these orders can comprise come from many or all orders of affairs and/or will locking any shared data operation.Information can be described and not appear at the specific command that still can be used to rebuild by second server example non-transaction session state in the affairs that complete in the first session.
In one embodiment, if order in request afterwards can be used non-transaction session state, and if non-transaction session state can not recover in the situation that not submitting affairs to, second server example also can depend on the checkpoint of non-transaction session state from client order afterwards.Arrive checkpoint during second server example is being recurred time, recurrence is prohibited and affairs are not repeated.In one example, use transparent conversation shift recording status, obtain the whole states or the Δ state that are changed by affairs.This state changes one or more orders that can be changed by implementation state in the situation that not repeating any affairs and represents.
Variable function and recurrence
In the time that request is recurred, the acquiescence of mutable object and the processing of expectation can change.Variable function is the function that obtains new value while being at every turn called.In the time that function is called, new value can change.Variable example is calling SYSTIMESTAMP function.The client application being resumed after stopping transport can be determined if ask to be recurred the result that whether keeps or ignore variable function.
Variable function value can be kept for SYSDATE, SYSTIMESTAMP, CURRENT_TIMEZONE, SYS_GUID and sequence.NEXTVAL.For many other variable functions such as MIN, MAX, CURRENT_TIMESTAMP, LOCAL_TIMESTAMP etc., variable value also can be kept.And if if original value is not kept to be returned to client for the different value of these variable functions, recurs and will be rejected, because client can be seen different results.If application can be used original value, application can and configure the behavior of variable function with the new KEEP clause of the sequence for having for other user's GRANT KEEP.In the time of the recurrence for many application, sequential value can be kept to provide binding variable consistency.
Table 1.1 is presented at the example of the processing to variable function by product during recurrence.(actual execution mode depends on specific products and version.)
Table 1.1: during recurring by product the processing example to mutable object
Variable function Product 1 Product 2 Product 3
SYSDATE,SYSTIMESTAMP Original Original Current
Sequence NEXTVAL and CURRVAL Original Original (inapplicable)
SYS_GUID Original (inapplicable) (inapplicable)
Variable function Product 1 Product 2 Product 3
LOB access Failure in mismatch (inapplicable) (inapplicable)
In order to allow to recur to keep and use original function result in the time recurring:
The database user of operation application can have maintained each sequence to its value KEEP DATE TIME and KEEP SYSGUID privilege and the KEEP SEQUENCE object privilege of authorizing.For example:
Authorize KEEP DATE TIME to user 2;
Authorize KEEP SYSGUID to user 2;
Authorize KEEP SEQUENCE on sales.seq1 to user 2;
Notice that GRANT ALL ON<object> does not comprise that KEEP DATE TIME and KEEP SYSGUID privilege and KEEP SEQUENCE object use privilege (, not authorizing the access being provided by them).
Do not authorize DBA privilege is recurred the application being enabled database user to operation.Only authorize this type of user required privilege.
Sequence in application can be used KEEP attribute, and it keeps the original value of sequence.NEXTVAL for sequence owner, so that keyword is mated during recurring.Sequential value can be kept in the time of the recurrence for many application.Following example is provided for the KEEP attribute (execute statement being had by user in this case, of sequence; For other, use GRANT KEEP SEQUENCE):
·SQL>CREATE?SEQUENCE?my_seq?KEEP;
·SQL>--Or,if?the?sequence?already?exists?but?without?KEEP:
·SQL>ALTER?SEQUENCE?my_seq?KEEP;
Note specifying ALTER SEQUENCE...KEEP/NOKEEP to be applied to the owner of sequence.It does not affect other user (not being owner) with KEEP SEQUENCE object privilege.If NOKEEP is designated, KEEP SEQUENCE object privilege be not awarded these users (if or it be authorized to them, it is recalled from each).
In order to keep function result (for the function of name) in the time recurring, DBA authorizes the user of KEEP privilege to call function.These fail safes restriction guarantees that it is to recurring effectively the function result for the code that do not had by that user with Save and restore.
Following extra consideration is applied to variable function privileged:
If user has the KEEP privilege that variable value is authorized,, in the time that SYS_GUID, SYSDATE and SYSTIMESTAMP function are called, object is inherited variable access.
If to the variable value on sequence object, KEEP privilege is withdrawn, and uses the SQL of that object or PL/SQL piece will not allow variable set or application for that sequence.
If the privilege of authorizing is withdrawn between running time and fault transfer, the variable value being collected shall not be applied to recurrence.
If new privilege is awarded between running time and fault shift, variable value is not hunted down and these values shall not be applied to recurrence.
Definition
" recoverable mistake " is the class mistake occurring due to external system fault, is independent of the utility cession logic of carrying out.Plan and unplanned stoppage in transit that recoverable mistake is followed foreground, network, node, storage and database occur.Application receives error code, can allow application not know the state of last operation of submitting to.Recur the session of data reconstruction storehouse and resubmit work undetermined for this type of recoverable mistake.Recur driver because the mistake that cannot recover is followed malloc failure malloc and do not resubmited work.The wrong example that cannot recover that can automatically not recur is the submission of invalid data value.Technology described herein can the session of data reconstruction storehouse and is resubmited work undetermined for this type of recoverable mistake.Some mistakes can not be recoverable, and for these mistakes, work is not resubmited.
Request is the unit that is submitted to the work of server instance on database session from application.Request can comprise or the database command of reference such as SQL and PL/SQL, with other data base call of the single network request being connected in individual data storehouse.Request can be delimited publishing calling made from register the connection being connected from connection pool to database.Recur and rebuild for the affairs of database session and non-transaction status and for the recoverable wrong described request that repeats.
" repeatably operation " is order or the command group that can be repeated after recoverable mistake.The affairs that for example, can repeat not submit to or non-transaction commands.Recur operational group repeatably and be the db transaction that database session is rebuild non-transaction status and can be repeated not submit to for recoverable mistake.In the time that request is recurred, it is application and client that execution looks like, just as request is postponed a little.In the time that database is carried out request a little slowly so that the response of client is delayed, effect can be similar to the system loading.
?
Figure BDA0000473888470000222
in, submit affairs to by the entry of upgrading affairs in transaction table.
Figure BDA0000473888470000223
generate and upgrade therewith corresponding REDO Record and write out this REDO Record.Once this REDO Record is written out to the REDO Record on dish, affairs are considered to submit at database place.From client visual angle, after being written into when reforming, generate
Figure BDA0000473888470000224
by client then affairs are considered to submit to message (be called and submit result to).But it is not lasting submitting message to.Recur and in the time that it is lost, obtain available submission result to recur affairs at the most once.
" non-transaction session state " or " NTSS " are that to be present in affairs outside or away from the state of the session of affairs.NTSS can create via illustrative or process mechanism.The example of illustrative mechanism is the setup of attribute for MODULE, ACTION, OPTIMIZER_PLAN, NLS_DATE etc.The example of process mechanism is to fill the PL/SQL process that global variable, LOB processing and AQ process.It can be the example states of user application setting that table 1 is enumerated.Example technique arranges initial condition with application readjustment, and then via original call work again to set up according to the order of sequence state.
Table 1.2: for rebuilding the exemplary method of non-transaction status
Figure BDA0000473888470000221
Figure BDA0000473888470000231
Figure BDA0000473888470000232
" variable function " is the term for can change the function of their result in the time being performed.Variable function has problems for recurrence, because described result can change in recurrence place.Consider to be used in sequence.nextval and the sysdate in key value.If major key is established the value having from these function calls, and be used in foreign key or other binding afterwards, in the time recurring, identical function result must be returned.Application continuity is what authorize function call provides variable value to replace to provide the consistency of opaque binding-variable in the time recurring.Comprise sequence.nextval, SYSDATE if call to use, the database functions of the variable function of SYSTIMESTAMP, SYSGUID, carries out that the original value returning is saved and is used when the recurrence again from function.
Session status consistency
For example, occur with the form of partially-initialized if all session status change (NLS setting, PL/SQL wrap state), and can be encapsulated in call back function in fault transfer place, session has " quiet " state.
If session status changes by initialization by fully encapsulation, can not fully be caught in the time unsuccessfully shifting and otherwise in one or more orders of carrying out during being included in request, session has " moving " state.
Recover the example benefit of session status
Example benefit can realize from each embodiment described herein, but not guarantees particularly useful to any specific embodiment.Here other benefit of specifically not saying also can be implemented.Technology described herein can allow session unavailability to be hidden end user and/or application shadow, no matter session unavailability is plan or unplanned.Can be resumed or reset into the second session to the state of the first session establishment, even in the case of having the user environment of customization, operating affairs and/or losing result.This technology also can not consider that session is stopped transport and permission server meets the target response time for applying.
First server example can be by the report the test of last affairs to client or application, and second server example can recover that result, succeeded by operating work.Server can provide support to stop transport in the case of not receiving from server for processing the response of exectorial corresponding requests.Server can support the session of the less use of the abnormality processing of the customization that need to apply in the time that session can be recurred to recover.It can be useful recovering session, is not successful even if some recur trial.Really, for the situation in the time that recurrence is prohibited, application still needs to process mistake.But in the situation that recurring, most of fault should be covered.This causes less the calling of the error handling logic to application (to be less than application mistake is appearred in user, allow user not know what has occurred, or force users inputs data again, or keeper must restart middle stratum server to deal with fault etc. what is worse).Therefore generally speaking, recurrence should provide better user's experience.
Once user's request is submitted, if user's request can be successful, user's request can be allowed to successfully.Then the stoppage in transit of database session, if session can be recurred, user should not experience stoppage in transit.Stoppage in transit in a part of system should not returned to mistake to terminal use or application.If affairs failure and can recurring, request can be recurred in the limited time.If recurred successfully, successfully return state is returned to application.After communication, system, storage or website are stopped transport, stop transport and do not need to be exposed to user, even if these stoppages in transit are exposed in the past.
User can limit the target response time of work, and does not consider to stop transport.User does not need the worried less seeervice level for stopping transport.Business enterprice sector such as bank, telecommunications, stock affairs, manufacture, transportation and retail can not allowed the response time of reduction, does not consider the reason of bottom.The response time of reducing can produce unacceptable competitive disadvantage.According to various technology described herein, server can be covered to client the stoppage in transit of server side, avoids the order that exceeds time threshold to recur to avoid unexpected result.
For carrying out the example server client of request
Many data base management systems (" DBMS ") provide the programming model based on affairs via each client driver interface such as Oracle calling interface (" OCI ") driver or Java database connectivity (" JDBC ") driver to application programmer.Via driver, carry out transaction status and the non-transaction status of five-star SQL and PL/SQL call establishment database session.Client driver can be called SQL and PL/SQL to send to DBMS, and in the end of affairs, changes submitted or rollback.Fig. 1 illustrates different assemblies and the layer of example server-FTP client FTP.In example, client driver is called SQL and PL/SQL to send to DBMS and the end in affairs, changes submitted or rollback.As shown in the figure, for database session, non-affairs and transaction status are established, and along with the submission for corresponding affairs completes, transaction status is cleared.
In the time using connection pool, working cell is request.Request comprise from connection pool publish, SQL and PL/SQL call and common zero or COMMIT operation.In the time that Connection Release is got back to connection pool by application, request finishes.Recur and in the time that request starts, be activated and forbid in the time that request finishes.Occur if stopped transport, recur repetitive requests, unless be prohibited by submissions or clearly forbidden recurring API (API) by the application use of asking for some if recurred in dynamic mode.
In the example of Fig. 1, alternatively, if band and mark are not arranged completely, connection manager is provided for band and the mark of application.The signal that request starts is sent out in application, or connects or meet the order for the API on mark request border by transmission by publishing from connection pool.In the time that request starts, start and recur, and catch beginning under database instructs.SQL or PL/SQL are sent to the RDBMS that does not comprise affairs by client.SQL engine compiles each statement and request is sent to SQL engine or PL/SQL engine.Execute statement is set up the non-transaction status for session at server place.Server to client return results that set, output binding, DML return results, function result and other message.When starting while recurring, bear indication for the server of queuing up or remove recurrence and add the recurrence context for confirming and guarantee to recur (if needs).Some results will remain in client driver and by being applied in its middle use that makes decisions.Client sends to RDBMS by starting the SQL of affairs or the PL/SQL that comprises one or more affairs.SQL engine compiles each statement and request is sent to PL/SQL engine (if PL/SQL) and sends to DML driver.This sets up transaction status and further non-transaction status for database session.The result that comprises the operation of any error message is returned to client driver.Again, in the time starting recurrence, server is born indication and is added recurrence context.Client has arranged by submitting to request to send to RDBMS or client the COMMIT of containing the automatic submission of this request or PL/SQL and have embedding.SQL engine compiles statement and submission request is sent to transaction layer.Transaction layer brushes change record into dish.The success of submitting to is established and is returned to client after submission.In the time starting recurrence, server is born indication and is added that recurrence adds recurrence context.Along with COMMIT result, client be also received in submit to bear in result by the next logic transaction identifiers (LTXID) being used.
Client driver by SQL or PL/SQL order send to server and reception comprise any error message, bear for the indication of recurring and recur the processing of contextual results set mistake.This information is stored in the memory at client driver place.Application result is forwarded to application for processing.Application can cache results and bound values, and continues to use these in processing the future of inquiry subsequently and affairs.Recur indication succeeded by client driver.SQL or PL/SQL order and recurrence context can be saved based on described indication.
In the situation that there is no technology described herein, if client input service and work is submitted to server, client is expected the current state of the variable potentially with the data of input, the data of returning and high-speed cache.If because being connected of failure between unavailability or server and the client of server-side components exists stoppage in transit, application need to will be lost with the non-transaction session state of operation.If affairs have been started and submitted to and be not issued, operating affairs will be rolled back and need to again be proposed by client.If affairs have been started and one or more submissions are issued, the submission message that is sent back to client is not lasting.In other words, client does not know whether request submitted, and when in non-transaction status, order the term of execution arrival.
In order to adapt to stop transport, application can be modified to include for reconnecting, rebuild non-transaction session state, querying server what to be determined when the fault carrying out and the whether submitted self-defined code that is repeated of maybe needing of the work of then determining.But any application code module can be failed, and will be quite expensive by Development of Module custom code with error process based on application.Equally, in this case, neither be general to determine that affairs whether are submitted to for client query.Self-defined inspection perhaps will be not suitable with architecture or the overall situation (XA) affairs of local matter, distributed transaction, parallel affairs, the affairs that copy and expansion.In addition, the operation of inspection can complete being made by client after checking, and client can not depend on the result of client-side inspection, and therefore this type of solution uses dangerous.
Again submitted to if lose affairs, client-server system can keep atomicity and consistency.If if non-transaction status is incorrect or it is submitted, affairs can not by rights be resubmited.If database has been restored to time point early or has no longer comprised the copy of the partial replication of the script of determination data, affairs can not automatically be resubmited.
But if be the affairs that different database or identical database database have been lost submission for the database of recurring, this embodiment refuses to recur.This embodiment automatically determines that those databases are for recurring legal not to be with which.This embodiment can count independently database and the database of strengthening.Its allows from database independently to the recurrence that is inserted into the same database the database of reinforcement, and when the recurrence from the database extraction of a reinforcement and while being inserted into another database.If attempt databases different, potential difference to recur, embodiment always refuses to recur.
Example server-the FTP client FTP of stopping transport for obfuscated data storehouse
In one embodiment, application continuity framework limits the agreement between application and database, if to make database session become unavailable, affairs and non-transaction database session status are rebuilt.When database session becomes unavailable, again settled, or become without when response, recur the database session that driver and database cooperation try reconstruct affect.In the not failure of state at application or middle level place, therefore database session is reconstructed into their states before fault, alternatively along with the result of stopping transport before the visible result coupling that recurrence is carried out and recover in the recurrence place of completing confirmation client application.
In one example, if time is up and resubmited or when user becomes out of patience and resubmits, recur the session stoping early when request AR awaiting reply.Original submission be detected and a nearest request submitted, be operatingly rejected also rollback for any other of same request.
Fig. 3 shows exemplary architecture and the assembly placement of recurring (be called and recur driver) and the recurrence based on weblogic server for client driver.Illustrate the placement that has for example been configured to the assembly that transmits repeatability.Example server, Oracle12g RDBMS, the continuity of management database session so that database session keeps uninterrupted, even during the stoppage in transit of the server instance of service conversation.During running time, server (for example sends to client driver by recurrence context and LTXID, JDBC as shown in the figure recurs driver or Oracle calling interface clear applications fault shifts (OCI TAF) module), and client driver is preserved LTXID and is recurred context (in the situation that needs are recurred).If need to recur,, under database instructs, client driver resubmits each order.Database uses LTXID to determine whether last request is submitted to, and, if it does not have, stop it to do like this.Database uses for the first time recurs context to confirm fail safe, database, agreement and execution environment in the second session place.After recurring, database uses recurs context to check that user visible result is with executory those are the same from original, and execution environment is correctly rebuild.Recur along with server by utilizing recurrence context is confirmed the fidelity of each recurrence and carries out.If it is unavailable that first server becomes, this processes and allows recurrence driver and server cooperation to recover affairs and the non-affairs in the second session.Recurrence can be repeated to continue until recur successfully in the 3rd or the 4th session.If recurred successfully, process the request of again catching that turns back to.If it is impossible recurring, original mistake is together with whether submitted application or the client of being returned to of known result.
Sample frame assembly
Applying successional following assembly can work together to carry out and catch and recur:
FAN watchdog logic subscrib
Recur drive interception execution error and, when these mistakes are can recover time, automatically start to recur user from request and call.When successful, recur to application look like be as postpone database mutual.
With database cooperation, recur driver and maintain the history of calling of session between client and database.For each the calling of locating to make in running time, driver keeps the required context of follow-up recurrence.
Continuity guidance device instructs running time and recurrence, with the cooperation of recurrence driver.Guidance device know what be repeatably and it should how to repeat, and it is as follows to apply this knowledge:
During running time, preserve agreement and confirmation (and enough variable functions for recurring), or instruct and recur driver maintenance or remove and call
During recurring, refusal is recurred:
Different databases or lost affairs and the potential database departing from carry out
Violate the agreement
Could not reproduce application or client is seen and the visible data of identical client (capable, outer binding, error code and message) of making decision potentially original the term of execution
Recurring context is the opaque information that database turns back to client driver during normal use running time.Recurring driver and driver is instructed to each SQL of keeping or PL/SQL and preserves context together with calling.Recur context and comprise enough knowledge to protect and to confirm each recurrence of calling, and in the time that variable value is kept, apply changeability.When calling no longer recurring session while needing, recur context and be dropped along with calling itself.
Example is recurred driver
JDBC recurs driver and OCI transactional applications fault transfer (be both called here and recur driver) is the successional exemplary components of application for recur the work of losing after recoverable database is stopped transport.
According to being indicated by continuity guidance device, recur driver and maintain the history of calling during client and database session.Each recurrence driver maintains the queue of calling, and calls for the maintenance at running time place each the recurrence context that maintenance recurrence afterwards needs.The end identifying in the time that recurrence is forbidden clearly and in request, recurs the duration by discharge the historical limitation accumulating in request end (normally, registering to drive pool).Recur drive records under continuity guidance device instructs, within the lasting period of each request, call history, remove for the request that completes calling of closing, and remove for being identified to be in the application that does not change non-transaction session state during request the affairs that SELECT calls and completes.In another embodiment, the history keeping during asking is labeled to discharge, and discharges the end of present request or according to the needs of garbage collector.
After any stoppage in transit of the session causing due to the loss of plan or unplanned database service, recur driver and rebuild non-affairs and transaction database session status.Recur driver and set up new session, to make not exist residual state, send and allow application to rebuild the optional call back function (if call back function is registered) for the initial condition of that session, and then re-execute the history of calling of the preservation that accumulates during running time.The recurrence of calling comes from driver queue and can be repeated according to the order of sequence or in mode slowly, and this depends on how application changes database positioning.Recur under the guidance of continuity guidance device assembly.The calling of each recurrence can be examined to guarantee that it just returns and the visible state of identical client of seeing in the time that original execution place is maked decision and using that is applied in it.Calling of each recurrence also can be examined to determine to call whether be accepted and finally complete to recur through inspection before the recurrence at database place and after recurring.
In one embodiment; by the original variable value (be called and recur context) in opaque context area for recur driver and be delivered in each database manipulation original the term of execution, recur protection SQL and PL/SQL statement (comprising in affairs) consistency.Recur context and preserve by recurring driver together with method call corresponding to database manipulation, and it is returned to database server with together with the database manipulation of each coupling during recurring.Recur context for recovering the original value of transient state SQL function result in the time that server side is made those function calls.Utilize this mechanism, recover original value, guarantee that the result that original value is used in the inquiry of recurrence and identical value is used as inquiry returns.This occurs to recurrence driver least cost in the situation that.
Affairs are carried out and are protected by LTXID at the most.Only that affairs are resubmited and are confirmed to be for the result of affairs last LTXID that can't help to use and submit to can recover time in mistake.The LTXID of the implementation for asking now by the LTXID in the session of replacing in recurrence place.If new conversation failure, use in up-to-date LTXID be for " at the most once " check that.Every other is attempted stoping by previous recurrence.
Utilize the information of recurring in context, if there is any mismatch in output, continuity guidance device refusal is recurred.This is included in all data that comprise that outer binding, DML return, are returned on the line of error code and error message.This refusal guarantees that all data Bei Chong Jian – that application is maked decision to it are potentially, row by the order identical with original execution be returned Shu Chu – bind outside in (for example DML returns and PL/SQL process and function result, error code and error message) and row set the same with original execution, and SQL limits outside binding, and execution environment is the same with original execution.Any difference causes recurring is ended, and if in affairs, affairs are rolled back.The session that failure is shifted is kept original the same with session status (away from affairs), allows application to take its recovery action.In one embodiment, when recurring context while not being available, the responsibility of confirmation is moved to client-side.
Recur driver can request whole lasting period in log history, if operated in static state, if or known state do not trusted when not changing or operating after affairs, remove the method call of closing for the inquiry completing and the affairs of closing in dynamic mode in affairs.If recur and be prohibited and in the end of request if those SELECT statements do not change state, remove the vernier of closing after completing and limit the recurrence duration by calling at SELECT.
The exemplary characteristics below providing with recur driver and be combined and there is the correct recurrence of acceptable cost to performance running time with support.
Example continuity guidance device
In one embodiment, continuity guidance device makes database server instruct the running time of feature and recur part.Target is that database server is to recur driver cooperation about what does with client-side.The possible advantage of this tool, make a policy for all recurrence drivers in a position, decision-making in can visit information (change, embed such as non-transaction status with calling of five-star submission, reversion, management etc.) position and can be for the position of all recurrence drivers expansions.In one embodiment, for the treatment of the pattern that can recur, what recur the driver logic placing in their queue and when remove for be present in database server.In other embodiments, logic can be between some assemblies of Database Systems or may reside on the diverse assembly of Database Systems.For example, when inlet flow can not be again around and therefore recur while being prohibited, and carry out clearly while forbidding recurring API when application, recurrence driver knows by continuity guidance device where request starts and finish.
Continuity guidance device solution encapsulation about what be repeatably rather than what be not knowledge repeatably.In one embodiment, indicate what be can drill information be the blacklist of the white list of the project of can recurring rather than the project that can not recur.This knowledge is kept with directs client driver in place application running time by continuity guidance device or removes and call, and at recurrence place refusal to difference database, the recurrence (and other) of violating the agreement or not reproducing the state meeting.Continuity guidance device running time place with recur context associated working with preserve security certificates, database signature, state information, vernier environment, executive system replacing number (SCN) and for the verification of client visible result and.If whether whether these data will be allowed to and recur be allowed to, recur effective for determining to recur.In recurrence place, utilize the information keeping at the recurrence context for round trip, vernier environment and execution SCN are rebuild or are confirmed for each calling.
Continuity guidance device layer is placed on calling of RDBMS and processes in management level.This allows to recur the overall picture that calls turnover database of driver.
The example of removing information
In order to save memory consumption, recur driver and can remove recurring calling of the record that no longer needs.Result setting and the statement after use be called suitably and be closed in time to application can via the JDBC of standard and OCI.
The effective affairs that do not have binding closed in while statement, and when that statement does not make a change and asks to finish the non-transaction session state of database, in the time that connection is returned to pond, JDBC and OCI recur driver by remove storage call history and with call (comprising the statement of preparation and the statement that can call) relevant all recurrence special objects (such as interior binding, recur context).
Recur driver historical removing API also will be provided, the history of calling that has been labeled the storage to discharge before removing main points within recurrence driver is removed in its permission application.Do not close or do not close in time result setting and statement or utilize identical connection to keep the time period extending and they are not turned back to pond in application, this contributes to further to save memory consumption.This API only removes the operation history of the storage that has been labeled as release.It does not comprise by re-executing any JDBC method, SQL or PL/SQL changes the state connecting.It does not remove the history that is not labeled as release.
Example is recurred context
In one embodiment, call in each superlative degree original the term of execution, by will be called recur contextual opaque context area be delivered to recurrence driver, in fail safe and the consistency of the storehouse session of recurrence place protected data.Recurring the SQL corresponding with highest database manipulation of context and queuing or PL/SQL preserves by recurring driver together with calling.During recurring, recur together with the database manipulation of context and each coupling and be returned to database server.
Recurrence context carries confirms fail safe, compatibility, the validity correctness of recurring, the knowledge of also optimizing recurrence.Recur context can comprise the variable value of carrying out for original function, the verification for data that is exposed to application and, for the agreement verification of fail safe and protocol validation and, for the executive plan of keyword and the optimizer of transaction results set.Most of the time, recur context only comprise database signature, SCN, verification and and and agreement verification and.Recurring context can be used as an entirety or is provided to recurrence driver as last the δ starting from request.
Some of in one embodiment, recurring that contextual example can comprise following knowledge combine to support the recurrence/migration of operating work.
Be used for the database signature (the database SCN of DBID, DBINC, timestamp, reinforcement) of the relative point in time of determining the database when original call is carried out.
Be used for for distorting ownership, the transaction signature (LTXID) of recurring and protected for violate the agreement (defect or deliberate) and calling order.
In the time browsing at raw data base place, optimize the SCN recurring.
In the first execution, be sent to client visible result verification and.Verification based on database and unload verification and calculating and provide prompt database side refusal when mismatch recurring from client driver.In the time that these are available, verification and can utilize hardware based calculating.Check and algorithm are compatible between hardware and software, and shift and migration with the fault of supporting database session across port and version.
Be used for the output of the ORACLE function call of selecting to support visible result consistency (being called variable support).
About polynary group of version, the detection of LOB/BLOB/CLOB to be provided and to change for the secure file of the medium type that seldom changes, avoid scanning and to the GB of large object data create verification and processing.
Polynary group of DBID-Rowid-Row version, to provide opaque optimization locking in affairs are recurred.
Optimizer executive plan, with the output order that protection is recurred for SELECT in the time that ORDER BY is not the part of original SQL statement.
In one embodiment, recurring context uses general form to process mantissa, version and original port change between diverting the aim with fault.
Continuity guidance device uses recurs fail safe and the correctness of context to support to recur.In the time that recurrence is activated, recurrence context is used as opaque object and turns back to client together with each calling.After application any variable value and SCN, and by the verification of the acquisition for client visible result with to being compared to the verification of original call and (be included in and recur in context) afterwards, if there is mismatch output, recur and be rejected.Confirm to comprise-go and returned by the order identical with the first submission of the part for the application row set of having seen; Output (for example DML returns and PL/SQL process and function result and error code and message) in outer binding is identical; And row set size with any error code with Original submission the same.Difference causes recurring is ended, and if in affairs, affairs are rolled back.
Example transactions idempotence assembly
Continuity guidance device uses affairs idempotence to prevent the affairs of repetition.During the uptime, LTXID is automatically remained in the session at the two place of client and server.In the time submitting to, LTXID is used as and submits to the part of affairs to continue, and the LTXID upgrading is returned to client.
In the time of the recurrence of each session of shifting for failure, continuity guidance device receives last LTXID for the use of this session, and if this calls the ability with submission information, call FORCE_OUTCOME api to determine last output of calling in session.FORCE_OUTCOME calls and can comprise that prevention LTXID submits to make to export known and can not be copied by operating affairs (affairs of, still carrying out) on another server.Stop LTXID to submit to and support to recur fidelity, utilize the affairs of this LTXID should be in service.Before the recurrence of attempting based on driver or logical server Network Based, the GET_LTXID_OUTCOME of intrinsic call FORCE_OUTCOME is called, to prevent multiple execution of single affairs.
As optimization, call and can not carry out submission if come from last of session of disappearance, FORCE_OUTCOME or GET_LTXID_OUTCOME are called.For example, last calls is SELECT or INSERT, UDATE or the DELECT that automatic submission pattern is not set, or the session disappearing is for read-only service or database manipulation.
Affairs idempotence assembly transmits the integrated functionality that idempotence automatically and is pellucidly provided to application.In one embodiment, affairs idempotence assembly comprises some combinations of following feature.
By being all transaction types are preserved the COMMIT output of LTXID at COMMIT place persistence for database.This comprise that automatic submission is carried out for utilizing, that come from PL/SQL inside, that come from server side Java inside, come from long-range and distributed transaction and come from otherwise can not be utilized the idempotence of the affairs that recall of general means identification.
Utilize LTXID to support once to carry out at the most semanteme, with the not reproducible of db transaction that makes to be protected by LTXID, no matter whether there are multiple copies of executory those affairs.
The COMMIT that stops operating work to guarantee no matter stoppage in transit what state for example can not be submitted to another submission of same transaction by browser or middle level.
Whether be identified in the work of submitting at LTXID place is used as the superlative degree to call the part of (client to server) submitted, or there is other complexity, be embedded in the process of server place such as PL/SQL or Java such as (a), or (b) can have in the calling of other result of being lost or effect.The submit state embedding is indicated when submission completes, but wherein submits to the whole process of carrying out not run to.Any work beyond submitting to can not be guaranteed to have completed until that process itself turns back to database engine, and client can not find, unless those results arrive clients or known and utilize affairs output and continue.
Recognizing COMMIT, to resolve the database being directed to be to synchronize prior to original submission, with it or after original submission, and refuse in the time there is gap in the submission sequence of affairs that is coming from client.If server or client are asynchronous in the affairs order of being determined by LTXID sequence, it is considered to attempt to force the mistake of idempotence.
The readjustment in client driver triggering in the time that LTXID is increased progressively by calling from client to server.This prepares for stoping the submission of repetition to maintain current LTXID for accessing for the LTXID of the higher layer applications such as cellular logic and third party.
Across being enhanced to the database of the whole world dispersion that can insert infrastructure the name space uniqueness of integration across database.This comprises RAC, data protection, Jinmen and can insert database.
The exemplary method of stopping transport for obfuscated data storehouse
Fig. 1 illustrate for recurring driver-level other places writing tasks, instruct driver, manager is recurred context and complete example server-client workflow of affairs idempotence.Flow process illustrates inquiry and transaction.Recur available, unless it start request with ending request between forbidden clearly or recessively.
Fig. 2 illustrate for by continuity guidance device, recur driver and for complete affairs at the most once carry out idempotence protocol-driven Database Systems fault shift example server-client workflow.
In order to recover utility cession from database server is stopped transport, for the dialogue of session by the beginning from request at least in part the state based on the dialogue of session in the time stopping transport recur.For example, utility cession can be outside affairs, in affairs, be read, utilize and submit to or rollback completes affairs.Client-server system can by such as NLS attribute, transaction status, PL/SQL bag global variable, etc. non-transaction status be reconstructed into their states in the time stopping transport.If affairs are in service and not submission, client-server system also can re-execute affairs in appropriate environment.If variable function value is allowed to, server can recover variable function value.
In order to minimize the impact on application, recur driver and attempt database session to be put back into it by the place that allows original execution postpone.The method of recurring is if affairs are submitted in the time stopping transport, and first determines the state of operating affairs in database session.Then, once the state of operating dialogue is known, just from consistent state, restart application, wherein the assembly such as browser, application, middle level, data base driver and database session is aligned consistent.
Recurrence comprises if to submit to be possible, determines the state of last submission of session.A last part for dialogue can be simple five-star the calling of beginning such as DML, COMMIT or PL/SQL piece and one or more submissions of carrying out potentially.LTXID is the key of these steps.The LTXID of last use is delivered to server in Prepare_Replay calls.Locate the record that server has kept the affairs of carrying out for this LTXID in running time.The first step of recurring is to obtain new session (new is clean to make state) and use LTXID and last SQL or PL/SQL to call to determine the dialogue state of stoppage in transit place.Be not submitted if last SQL or PL/SQL call, these steps are returned to the state of not submitting to.
Once state is known, if readjustment is registered, next step is to allow application recovery basic terminal use's state, such as the request across coming from identical terminal use almost constant NLS arrange, security attributes etc.In the time utilizing static state, use this step, wherein set up state in the incipient stage.When utilizing, it is optional when dynamic, really provides better performance, because needn't rebuild state in the time that each request starts but utilize recalling such as UCP label that state is set.In the time that readjustment is registered, it can and be recurred execution or only carry out in recurrence place in running time, and this depends on its execution mode.
Step afterwards re-executes call (if the affairs of existence) that created session status and transaction status.These steps are recurred calling of current request, or for recovering nearest session status and necessary those subsets of calling of transaction status, the calling of for example current affairs, rather than those of previously affairs or request.Each recurrence of calling is by being used to confirm database embodiment, agreement (aka recurs in correct order), output, for recovering for otherwise will causing in the value of the ORACLE of recurrence place mismatch function, recur and for confirming the recurrence context support of environment for optimizing.
Example rule for recurring in the time that PL/SQL exists
In an embodiment who does not support idempotence, when recurring that driver sees that affairs start or last calls while being the PL/SQL at highest place, historical record stops and log history is eliminated.This is because PL/SQL can submit affairs to.
In present mode, have and support in an embodiment that PL/SQL recurs, once PL/SQL has been seen and and do not re-use SCN be not effectively because fall back in time, recur and be just switched to present mode.
Application can be carried out and submit to for connecting initialized affairs.As long as affairs are submitted in readjustment, this is just to recurring effectively.
For non-transaction status, for carrying out but do not cause the keeping track of history that calls that transaction bit (the non-affairs of aka.) is set up after execution.Before seeing PL/SQL, in recurring SELECT statement, recur driver use consistent mould formula – recur " just as " original SCN.This is the optimization that minimizes the reject rate causing due to present mode.Optimize the new module of supporting to write self contained data base.
Arrive five-star PL/SQL if recur driver, recur and stop utilizing the SELECT and the PL/SQL that in original SCN and all subsequent calls, present mode, move.Behavior must be as submission be delayed.SELECT calls and can not located to remove in running time, even close once in present mode is recurred.Recurrence re-executes and and then closes the vernier of previously having closed.In the end of http request and do not change in the removing at the affairs place of closing.In this read-only solution, in recurrence place, last all calling of calling that COMMIT can make for eliminating is forbidden.
In the case of the idempotence of automatically being supported by transaction protection, for transaction status, record can proceed to beyond non-transaction phase, via affairs until COMMIT success.Once in affairs, SELECT, DML and PL/SQL always carry out in present mode.If affairs are not submitted to, no matter whether Pl/SQL exists, recur driver and can in present mode, affairs be carried through to the end.DML and PL/SQL carry out at present mode place.After successful COMMIT, if utilized dynamically, and state for example changes in the affairs of submitting to by PL/SQL, recurs for that request and is prohibited and keeps forbidding until next request starts.After successful COMMIT, be prohibited and get rid of all history of opening the affairs outside outside vernier to be eliminated when utilizing when dynamic, recurring.On the contrary, if utilize static, application stated or it be detected install or change state after it does not have change state and this state is not trusted after submission.In this case, only those affairs are eliminated, and recur maintenance startup until request finishes.
During recurring, last all calling of calling that COMMIT can make for eliminating is forbidden.This is avoided submitting to border to change during recurring.In the end one call before, COMMIT is restarted.Last calls and does not turn back to client, and therefore client is not maked decision based on it.It is not submitted to, because they are processed and confirm by LTXID.
In one embodiment, historical record starts request flag device place at the next one and restarts.EBusiness Suite(can lose while connecting when being labeled as) but and Fusion Applications UI to operate between request be the stateless example of application that continues to keep physical connection.For connection pool, beginning and the end of the recessive ground mark request in the time publishing respectively and register of ORACLE pond.This tells recurrence driver when to start and recurs and start record, and when forbids recurring and stopping record.The new API issuing start request and ending request allows other third party's connection pool registering and publishing tense marker request.Independently application can utilize these API mark requests where start and finish.
In the time that recurrence occurs, whole request is recurred until the place occurring of stopping transport; And then continue remaining request.It is that request is postponed a little that execution looks like user, application and client.In the time that database moves request a little slowly so that the response of client is delayed, effect can be similar to the system loading.In consistent pattern, support that in an embodiment that PL/SQL recurs,, for calling of the execution that does not cause transaction bit to be set up, non-transaction status is maintained having.In the time recurring SELECT statement, recur driver and use consistent Mo Shi – to recur " seeming " original SCN.If recur five-star PL/SQL(that driver arrives non-affairs, do not open affairs in original execution place), recur session SCN is set to original SCN, and recur that PL/SQL and its children at that SCN place.
For transaction status, record and recurrence can continue until COMMIT via transaction phase.All calling in affairs, SELECT, DML and PL/SQL are recurred at current SCN place.If affairs are not submitted to, no matter whether Pl/SQL exists, recur driver and can in present mode, affairs be carried through to the end.DML and PL/SQL carry out at current SCN place.After successful COMMIT, determine that utilization is dynamic if recurred, in the time that COMMIT is successful, recurs and can be prohibited.Once forbid, recur and keep forbidding until ask to finish.This is not significant problem because most request comprises zero or submission, and COMMIT in the time existing conventionally immediately succeeded by ending request and register to connection pool.In the time that existence changes, some solutions can detect this state change after affairs are submitted to and do not trusted.In the affairs of submitting to, detected and trusted if state changes, the 3rd group command can be maintained to rebuild that state.If determine and utilize static state, solution is recurred COMMIT in the past.
Hardware overview
According to an embodiment, carry out technology described herein by one or more special computing equipments.Special computing equipment can be the rigid line of execution technique, maybe can comprise the digital electronic device such as one or more application-specific integrated circuit (ASIC)s (ASIC) or field programmable gate array (FPGA) being programmed with execution technique, maybe can comprise the one or more general hardware processor being programmed with the program command execution technique according in firmware, memory, other memory or combination.This type of special computing equipment also can combine the self-defining hard wire logic, ASIC or the FPGA that have self defining programm design and realize technology.Special computing equipment can be desktop computer systems, portable computer system, handheld device, the network equipment or merge rigid line and/or programmed logic with any miscellaneous equipment of execution technique.
For example, Fig. 6 shows the block diagram of the computer system 600 that embodiments of the invention can be performed.Computer system 600 comprises bus 602 or other communication mechanism for the communication information, and for the treatment of the hardware processor that is coupled to bus 602 604 of information.Hardware processor 604 can be for example general purpose microprocessor.
Computer system 600 also comprises be couple to bus 602 for storing the information that will be carried out by processor 604 and the main storage 606 of instruction such as random-access memory (ram) or other dynamic memory.Main storage 606 also can be for storing temporary variable or other average information between the order period of being carried out by processor 604 in execution.This type of instruction, in the time being stored in processor 604 addressable non-instantaneous storage medium, being played up computer system 600 to become the special purpose machinery that is customized to carry out the operation of specifying in instruction.
Computer system 600 also comprise be couple to bus 602 for storing for the treatment of the static information of device 604 and the read-only memory of instruction (ROM) 608 or other sram devices.Memory device 610 such as disk, CD or solid-state drive is provided and is couple to bus 602 for storing message and instruction.
Computer system 600 can via bus 602 be connected to such as cathode ray tube (CRT) for show the display 612 of information to computer user.The input equipment 614 that comprises alphanumeric and other key is coupled to bus 602 with to processor 604 communication informations and command selection.Another type of user input device is for to processor 604 communication direction information and command selection and for controlling cursor mobile cursor control 616 on display, such as mouse, tracking ball or cursor direction key.This input equipment has two degrees of freedom that are divided into diaxon conventionally, and (for example, (for example, y), it allows the position in equipment given plane to x) He the second axle to the first axle.
Computer system 600 can be utilized to be combined with computer system and make or hard wire logic, one or more ASIC or FPGA, firmware and/or the programmed logic of the customization that computer system 600 is special purpose machinery are carried out technology described herein.According to an embodiment, the processor 604 that is included in one or more sequences of the one or more instructions in main storage 606 by computer system 600 in response to execution is carried out the technology here.This type of instruction can be read into main storage 606 from another storage medium such as memory device 610.The execution that is included in the command sequence in main storage 606 makes processor 604 carry out treatment step described herein.In alternative embodiment, hardware circuitry can be replaced and uses or be combined with software instruction by software instruction.
Term used herein " storage medium " refers to that storage makes machine with the data of ad hoc fashion operation and/or any non-instantaneous medium of instruction.This type of storage medium can comprise non-volatile media and/or Volatile media.Non-volatile media for example comprises, CD, disk or the solid-state drive such as memory device 510.Volatile media comprises dynamic memory, such as main storage 506.The common form of storage medium for example comprises, floppy disk, floppy disc, hard disk, solid-state driving, tape or any other magnetic data storage media, CD-ROM, any other optical data storage medium, any physical medium, RAM, PROM and the EPROM with hole type, FLASH-EPROM, NVRAM, any other memory chip or box.
Can use by combined transmission medium but storage medium is different from transmission medium.Transmission medium participates in transinformation between storage medium.For example, transmission medium comprises coaxial cable, copper cash and optical fiber, comprises the circuit that comprises bus 602.Transmission medium also can be taked the form of sound wave or light wave, generates during radioactive wave and infrared data communication such as those.
The various forms of medium can be contained in the one or more sequences that transmit one or more instructions to the processor 604 for carrying out.For example, instruction can be carried in the solid-state driving of disk or remote computer at first.Remote computer can load instructions utilize modulator-demodulator to send by telephone wire in its dynamic memory and by instruction.The modulator-demodulator of computer system 600 this locality can receive data and use infrared transmitter that data are transformed into infrared signal on telephone wire.Infrared detector may be received in the data of carrying in infrared signal and suitable circuit can be placed data in bus 602.Data are carried to main storage 606 by bus 602, and instruction is therefrom retrieved and carried out to processor 604.The instruction being received by main storage 606 can be stored in alternatively memory device 610 before being carried out by processor 604 and afterwards.
Computer system 600 also comprises the communication interface 618 that is couple to bus 602.Communication interface 618 provides the bidirectional data communication that is couple to the network link 620 that is connected to LAN 622.For example, communication interface 618 can be Integrated Service Digital Network(ISDN) (ISDN) card, cable modem, satellite modem or provide data communication to be connected to the modulator-demodulator of the telephone wire of corresponding types.As another example, communication interface 618 can be to provide data communication and be connected to the Local Area Network card of compatible LAN.Also can realize wireless link.In any this type of execution mode, communication interface 618 sends and receives the electricity, electromagnetism or the light signal that transmit the digit data stream that represents various types of information.
Network link 620 provides data communication via one or more networks to other data equipment conventionally.For example, network link 620 can provide connection to main frame 624 or by the data set of Internet Service Provider (ISP) 626 operations via local network 622.ISP626 provides data communication service via the present packet data communication network of the global range of common being called as " the Internet " 628 subsequently.LAN 622 and the Internet 628 both use electricity, electromagnetism or the light signal of carry digital data streams.Travelling to and fro between computer system 600 transmits on the signal via each network of numerical data and network link 620 and is exemplary form of transmission medium via the signal of communication interface 618.
Computer system 600 can send message and receive the data that comprise program code via network, network link 620 and communication interface 618.In the Internet example, the code for application program that server 630 can send request via the Internet 628, ISP626, LAN 622 and communication interface 618.
The code receiving can, by processor 604 according to the execution receiving, and/or be stored in memory device 610 or other nonvolatile memory for later execution.
Example embodiment
Example embodiment X1-X34 comprises:
X1. a method, comprising:
In the first session between first server example and client, send information by first server example to client, described information maintains for may recur in the second session that send in the request to first server example, for the one or more orders in the Management Information Base of carrying out in the first session between second server example and client;
If wherein said one or more order is recurred according to the information maintaining at client place in the second session, will be reconstituted in the state of setting up in the first session between first server example and client, and be not again made at any change to database of having made in the first session;
If wherein in the request to first server example, send, be performed at least one order in this group command of carrying out in the first session, will make the first server example affairs that database makes a change in the first session;
Wherein the method is carried out by the one or more computing equipments that operate first server example.
X2. the method as described in embodiment X1, wherein said information comprises describes first group of information of one or more affairs and the second group of information not being associated with described one or more affairs, and the method also comprises:
Described in first server example detection one or more affairs submitted and detect any state of changing during the affairs of described one or more submissions can't help in this request afterwards order use, unless described state is submitted to by the affairs of one or more submissions, and as response, in the first session, send the indication of first group of information removing the affairs of describing one or more submissions to client.
X3. the method as described in embodiment X1, wherein comprises to client transmission information: in the message that is included in one or more results of carrying out one or more orders of this group command in the first session, bear described information.
X4. the method as described in embodiment X1, wherein comprises to client transmission information:
Send the first indication of first group of information for storing one or more affairs of opening of describing the first queue; With
Send the second indication for storing the second group of information not being associated with the affairs of the one or more that open of the second queue or submission.
X5. the method as described in embodiment X4, wherein at least one statement that is not also made permanent temporary variations in database is made in first group of information identification.
X6. the method as described in embodiment X4, wherein second group of information be identified in one or more that open in the first session or the affairs submitted to before, afterwards or during at least one statement of carrying out, wherein said at least one statement is not made Iterim Change to database.
X7. the method as described in embodiment X1, wherein said information comprises describes first group of information of one or more affairs and the second group of information not being associated with described one or more affairs, and the method also comprises:
Described in first server example detection one or more affairs submitted and detect order afterwards can use during the affairs of described one or more submissions, change but can't help the lasting state of affairs of described one or more submissions, and as response, in the first session, send to client:
Be described in the 3rd group of information that changes one or more orders of state in the situation of the affairs that do not repeat one or more submissions, and
Remove the indication of first group of information of the affairs of describing described one or more submissions.
X8. the non-instantaneous computer-readable medium of one or more storage instructions, described instruction makes in the time being performed:
In the first session between first server example and client, send information by first server example to client, described information maintains for may recur in the second session that send in the request to first server example, for the one or more orders in the Management Information Base of carrying out in the first session between second server example and client;
If wherein said one or more order is recurred according to the information maintaining at client place in the second session, will be reconstituted in the state of setting up in the first session between first server example and client, and be not again made at any change to database of having made in the first session;
If wherein in the request to first server example, send, be performed at least one order in this group command of carrying out in the first session, will make the first server example affairs that database makes a change in the first session.
X9. the one or more non-instantaneous computer-readable medium as described in embodiment X8, wherein said information comprises describes first group of information of one or more affairs and the second group of information not being associated with described one or more affairs, and the method also comprises:
Described in first server example detection one or more affairs submitted and detect any state of changing during the affairs of described one or more submissions can't help in this request afterwards order use, unless described state is submitted to by the affairs of one or more submissions, and as response, in the first session, send the indication of first group of information removing the affairs of describing one or more submissions to client.
X10. the one or more non-instantaneous computer-readable medium as described in embodiment X8, wherein comprises to client transmission information: in the message that is included in one or more results of carrying out one or more orders of this group command in the first session, bear described information.
X11. the one or more non-instantaneous computer-readable medium as described in embodiment X8, wherein comprises to client transmission information:
Send the first indication of first group of information for storing one or more affairs of opening of describing the first queue; With
Send the second indication for storing the second group of information not being associated with the affairs of the one or more that open of the second queue or submission.
X12. the one or more non-instantaneous computer-readable medium as described in embodiment X8, wherein at least one statement that is not also made permanent temporary variations in database is made in first group of information identification.
X13. the one or more non-instantaneous computer-readable medium as described in embodiment X8, wherein second group of information be identified in one or more that open in the first session or the affairs submitted to before, afterwards or during at least one statement of carrying out, wherein said at least one statement is not made Iterim Change to database.
X14. the one or more non-instantaneous computer-readable medium as described in embodiment X8, wherein said information comprises describes first group of information of one or more affairs and the second group of information not being associated with described one or more affairs, and wherein said instruction further makes in the time being performed:
Described in first server example detection one or more affairs submitted and detect order afterwards can use during the affairs of described one or more submissions, change but can't help the lasting state of affairs of described one or more submissions, and as response, in the first session, send to client:
Be described in the 3rd group of information that changes one or more orders of state in the situation of the affairs that do not repeat one or more submissions, and
Remove the indication of first group of information of the affairs of describing described one or more submissions.
X15. a method, comprising:
In the second session between second server example and client, second server example is from client information, described information for the request from client to first server example, send, for the one or more orders in the Management Information Base of carrying out in the first session, may recur in the second session maintains;
Second server example is recurred described one or more orders according to the information being maintained by client place, to be reconstituted in the state of setting up in the first session between first server example and client, and be not again made at any change to database of having made in the first session;
If wherein in the request to first server example, send, be performed at least one order in this group command of carrying out in the first session, will make the first server example affairs that database makes a change in the first session;
Wherein the method is carried out by the one or more computing equipments that operate second server example.
X16. the method as described in embodiment X15, wherein said information comprises first group of information of one or more affairs of opening of describing in the first session and the second group of information not being associated with one or more affairs that open or that submit to, the information that is wherein described in one or more other affairs of submitting in the first session is used from first group of erasing of information and the order of can't help this request afterwards, submits described one or more other affairs to and continues unless this information exchange is crossed.
X17. the method as described in embodiment X15, wherein said information comprises first group of information of one or more affairs of opening and the second group of information not being associated with the affairs of opening or submit to described.
X18. the method as described in embodiment X15, wherein this group command causes becomes lasting one or more changes in the first session in database, and before the identification of wherein said information makes in the first session one or more changes lasting in database, during or at least one statement of carrying out afterwards, wherein said at least one statement does not make a change database.
X19. the method as described in embodiment X15, wherein said information comprises the first group of information of one or more affairs of opening of describing, the second group of information not being associated with the affairs of opening or submit to and the 3rd group of information describing the one or more orders that change the state changing during one or more affairs of submitting to.
X20. the non-instantaneous computer-readable medium of one or more storage instructions, described instruction makes in the time being performed:
In the second session between second server example and client, second server example is from client information, described information for the request from client to first server example, send, for the one or more orders in the Management Information Base of carrying out in the first session, may recur in the second session maintains;
Second server example is recurred described one or more orders according to the information being maintained by client place, to be reconstituted in the state of setting up in the first session between first server example and client, and be not again made at any change to database of having made in the first session;
If wherein in the request to first server example, send, be performed at least one order in this group command of carrying out in the first session, will make the first server example affairs that database makes a change in the first session.
X21. the one or more non-instantaneous computer-readable medium as described in embodiment X20, wherein said information comprises first group of information of one or more affairs of opening of describing in the first session and the second group of information not being associated with one or more affairs that open or that submit to, the information that is wherein described in one or more other affairs of submitting in the first session is used from first group of erasing of information and the order of can't help this request afterwards, submits described one or more other affairs to and continues unless this information exchange is crossed.
X22. the one or more non-instantaneous computer-readable medium as described in embodiment X20, wherein said information comprises first group of information of one or more affairs of opening and the second group of information not being associated with the affairs of opening or submit to described.
X23. the one or more non-instantaneous computer-readable medium as described in embodiment X20, wherein this group command causes becomes lasting one or more changes in the first session in database, and before the identification of wherein said information makes in the first session one or more changes lasting in database, during or at least one statement of carrying out afterwards, wherein said at least one statement does not make a change database.
X24. the one or more non-instantaneous computer-readable medium as described in embodiment X20, wherein said information comprises the first group of information of one or more affairs of opening of describing, the second group of information not being associated with the affairs of opening or submit to and the 3rd group of information describing the one or more orders that change the state changing during one or more affairs of submitting to.
X25. the method as described in embodiment X1, wherein the order of at least one in this group command is used variable function in the time being carried out in the first session, and described variable function provides different values in difference execution place, and the method also comprises:
Directs client is preserved and is come from different value that the difference of variable function carries out to make the different values can be replaced during the recurrence of at least one order.
X26. the one or more non-instantaneous computer-readable medium as described in embodiment X8, wherein the order of at least one in this group command is used variable function in the time being carried out in the first session, described variable function provides different values in difference execution place, and the method also comprises:
Directs client is preserved and is come from different value that the difference of variable function carries out to make the different values can be replaced during the recurrence of at least one order.
X27. the method as described in embodiment X15, wherein the order of at least one in this group command is used variable function in the time being carried out in the first session, and described variable function provides different values in difference execution place, and the method also comprises:
In recurring described one or more orders, the variable function substitution different value of second server example to coupling.
X28. the one or more non-instantaneous computer-readable medium as described in embodiment X20, wherein the order of at least one in this group command is used variable function in the time being carried out in the first session, described variable function provides different values in difference execution place, and the method also comprises:
In recurring described one or more orders, the variable function substitution different value of second server example to coupling.
X29. the method as described in embodiment X1, wherein said information is also included in the result that can be used for one or more orders of client in the first session.
X30. the one or more non-instantaneous computer-readable medium as described in embodiment X8, wherein said information is also included in the result that can be used for one or more orders of client in the first session.
X31. the method as described in embodiment X15, wherein said information is also included in the first result of the one or more orders that can be used for client in the first session, and the method also comprises that second server example confirmation second result coupling of one or more orders in the second session can be used for the first result of client in the first session.
X32. the one or more non-instantaneous computer-readable medium as described in embodiment X20, wherein said information is also included in the first result of the one or more orders that can be used for client in the first session, and the method also comprises that second server example confirmation second result coupling of one or more orders in the second session can be used for the first result of client in the first session.
X33. the method as described in embodiment X1, also comprise that client is by publishing connection pool or carrying out the beginning of mark request by the API that utilization starts the recurrence between client and first server example, and client is by register back connection pool or forbid that by utilization the API of recurrence carrys out the end of mark request by connecting.
X34. the one or more non-instantaneous computer-readable medium as described in embodiment X8, wherein said instruction is in the time being performed, also make client by publishing connection pool or carrying out the beginning of mark request by the API that utilization starts the recurrence between client and first server example, and client is by register back connection pool or forbid that by utilization the API of recurrence carrys out the end of mark request by connecting.
In above-mentioned specification, with reference to many details that can be different between execution mode, embodiments of the invention are described.Therefore, it is illustrative that specification and accompanying drawing should be considered to, rather than in the meaning of restriction.Unique and the special indication of the scope of the invention and the content as the scope of the invention of being specified by applicant are word and the equivalent scope of claims of the particular form being sent, sent with this type of claim by the application, comprise anyly revising subsequently.

Claims (15)

1. a method, comprising:
In the first session between first server example and client, send information by first server example to client, described information maintains for may recur in the second session that send in the request to first server example, for the one or more orders in the Management Information Base of carrying out in the first session between second server example and client;
If wherein said one or more order is recurred according to the information maintaining at client place in the second session, will be reconstituted in the state of setting up in the first session between first server example and client, and be not again made at any change to database of having made in the first session;
If wherein in the request to first server example, send, be performed at least one order in this group command of carrying out in the first session, will make the first server example affairs that database makes a change in the first session;
Wherein the method is carried out by one or more computing equipments.
2. the method for claim 1, wherein said information comprises describes first group of information of one or more affairs and the second group of information not being associated with described one or more affairs, and the method also comprises:
Described in first server example detection one or more affairs submitted and detect any state of changing during the affairs of described one or more submissions can't help in this request afterwards order use, unless described state is submitted to by the affairs of one or more submissions, and as response, in the first session, send the indication of first group of information removing the affairs of describing one or more submissions to client.
3. as the method as described in any one in claim 1 or 2, wherein comprise to client transmission information: in the message that is included in one or more results of carrying out one or more orders of this group command in the first session, bear described information.
4. as the method as described in any one in claim 1 or 3, wherein comprise to client transmission information:
Send the first indication of first group of information for storing one or more affairs of opening of describing the first queue; With
Send the second indication for storing the second group of information not being associated with the affairs of the one or more that open of the second queue or submission.
5. method as claimed in claim 4, wherein second group of information be identified in one or more that open in the first session or the affairs submitted to before, afterwards or during at least one statement of carrying out, wherein said at least one statement is not made Iterim Change to database.
6. as the method as described in any one in claim 1 or 3, wherein said information comprises describes first group of information of one or more affairs and the second group of information not being associated with described one or more affairs, and the method also comprises:
Described in first server example detection one or more affairs submitted and detect order afterwards can use during the affairs of described one or more submissions, change but can't help the lasting state of affairs of described one or more submissions, and as response, in the first session, send to client:
Be described in the 3rd group of information that changes one or more orders of state in the situation of the affairs that do not repeat one or more submissions, and
Remove the indication of first group of information of the affairs of describing described one or more submissions.
7. as the method as described in any one in claim 1-6, wherein the order of at least one in this group command use when be performed in the first session provides the variable function of different value in difference execution place, and the method also comprises:
Directs client is preserved and is come from different value that the difference of variable function carries out to make the different value can be replaced during the recurrence of at least one order.
8. as the method as described in any one in claim 1-7, wherein said information is also included in the result of the one or more orders that can use client in the first session.
9. as the method as described in any one in claim 1-8, also comprise: client is by checking connection pool or carrying out the beginning of mark request by the API that utilizations starts the recurrence between client and first server example, and client is got back to the connection of connection pool or is forbidden that by utilization the API of recurrence carrys out the end of mark request by inspection.
10. as the method as described in any one in claim 1-9, also comprise:
The information being maintained for possible recurrence from client by second server example in the second session;
Second server example is recurred one or more orders to be reconstituted in the state of setting up in the first session between first server example and client according to the information maintaining at client place, and is not again made at any change to database of having made in the first session.
11. methods as claimed in claim 10, the information wherein receiving comprises the first group of information of one or more affairs of opening of describing, the second group of information not being associated with the affairs of opening or submit to and the 3rd group of information describing the one or more orders that change the state changing during one or more affairs of submitting to.
12. as the method as described in any one in claim 10 or 11, and wherein the order of at least one in this group command use when be performed in the first session provides the variable function of different value in difference execution place, and the method also comprises:
In recurring described one or more orders, the variable function substitution different value of second server example to coupling.
13. as the method as described in any one in claim 10-12, wherein said information is also included in the first result of the one or more orders that can be used for client in the first session, and the method also comprises: the first result of being confirmed to can be used in the first session in the second result coupling of one or more orders described in the second session client by second server example.
The computer-readable medium of 14. one or more storage instructions, described instruction, in the time being performed, makes to carry out the method for recording in any one of claim 1-13.
15. 1 kinds of first server examples, comprising:
For the first session between first server example and client, send the device of information to client, described information maintains for may recur in the second session that send in the request to first server example, for the one or more orders in the Management Information Base of carrying out in the first session between second server and client;
If wherein said one or more order is recurred according to the information maintaining at client place in the second session, will be reconstituted in the state of setting up in the first session between first server example and client, and be not again made at any change to database of having made in the first session;
If wherein in the request to first server example, send, be performed at least one order in this group command of carrying out in the first session, will make the first server example affairs that database makes a change in the first session.
CN201280043498.9A 2011-09-09 2012-09-07 Server is covered to client and application to stop transport Active CN103782573B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710929783.5A CN107688487B (en) 2011-09-09 2012-09-07 Method and system for recovering state of database session

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US13/229,641 US8549154B2 (en) 2011-09-09 2011-09-09 Recovering stateful read-only database sessions
US13/229,641 2011-09-09
US13/448,258 2012-04-16
US13/448,267 2012-04-16
US13/448,258 US8984170B2 (en) 2011-09-09 2012-04-16 Idempotence for database transactions
US13/448,267 US8924346B2 (en) 2011-09-09 2012-04-16 Idempotence for database transactions
US13/542,278 US9600371B2 (en) 2011-09-09 2012-07-05 Preserving server-client session context
US13/542,278 2012-07-05
US13/563,680 2012-07-31
US13/563,680 US8725882B2 (en) 2011-09-09 2012-07-31 Masking database outages from clients and applications
PCT/US2012/054326 WO2013036882A1 (en) 2011-09-09 2012-09-07 Masking server outages from clients and applications

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201710929783.5A Division CN107688487B (en) 2011-09-09 2012-09-07 Method and system for recovering state of database session

Publications (2)

Publication Number Publication Date
CN103782573A true CN103782573A (en) 2014-05-07
CN103782573B CN103782573B (en) 2017-11-07

Family

ID=46889479

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201280043498.9A Active CN103782573B (en) 2011-09-09 2012-09-07 Server is covered to client and application to stop transport
CN201710929783.5A Active CN107688487B (en) 2011-09-09 2012-09-07 Method and system for recovering state of database session

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201710929783.5A Active CN107688487B (en) 2011-09-09 2012-09-07 Method and system for recovering state of database session

Country Status (4)

Country Link
US (3) US8725882B2 (en)
EP (2) EP2903239B1 (en)
CN (2) CN103782573B (en)
WO (1) WO2013036882A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109992620A (en) * 2019-04-03 2019-07-09 重庆电力高等专科学校 Intelligent control conversational system of computer
CN111324632A (en) * 2018-12-17 2020-06-23 Sap欧洲公司 Transparent database session recovery with client-side caching
CN112559168A (en) * 2015-01-20 2021-03-26 赛姆普蒂夫技术公司 Computer-implemented method and system for generating scroll time information and readable medium

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9600371B2 (en) 2011-09-09 2017-03-21 Oracle International Corporation Preserving server-client session context
US8924346B2 (en) 2011-09-09 2014-12-30 Oracle International Corporation Idempotence for database transactions
US8984170B2 (en) 2011-09-09 2015-03-17 Oracle International Corporation Idempotence for database transactions
US8549154B2 (en) 2011-09-09 2013-10-01 Oracle International Corporation Recovering stateful read-only database sessions
US8725882B2 (en) 2011-09-09 2014-05-13 Oracle International Corporation Masking database outages from clients and applications
US9141351B2 (en) * 2012-05-01 2015-09-22 Oracle International Corporation Indicators for resources with idempotent close methods in software programs
US9239868B2 (en) * 2012-06-19 2016-01-19 Microsoft Technology Licensing, Llc Virtual session management and reestablishment
US9948726B2 (en) * 2013-07-01 2018-04-17 Avaya Inc. Reconstruction of states on controller failover
US10255158B2 (en) 2013-10-15 2019-04-09 Oracle International Corporation Monitoring and diagnostics of business transaction failures
US9652353B2 (en) * 2013-10-15 2017-05-16 Oracle International Corporation Monitoring business transaction failures involving database procedure calls
US9342351B1 (en) * 2013-11-01 2016-05-17 Bmc Software, Inc. Systems and methods for efficient DB2 outage operations
US10530883B2 (en) * 2014-02-18 2020-01-07 Fastly Inc. Data purge distribution and coherency
US9582375B2 (en) * 2014-05-07 2017-02-28 Oracle International Corporation Method and system for automatic failover for clients accessing a resource through a server using hybrid checksum location
US9632887B2 (en) * 2014-09-19 2017-04-25 International Business Machines Corporation Automatic client side seamless failover
US10394818B2 (en) 2014-09-26 2019-08-27 Oracle International Corporation System and method for dynamic database split generation in a massively parallel or distributed database environment
US11188427B2 (en) 2014-09-26 2021-11-30 Oracle International Corporation System and method for transaction recovery in a multitenant application server environment
US10387421B2 (en) 2014-09-26 2019-08-20 Oracle International Corporation System and method for generating size-based splits in a massively parallel or distributed database environment
US10528596B2 (en) * 2014-09-26 2020-01-07 Oracle International Corporation System and method for consistent reads between tasks in a massively parallel or distributed database environment
US10970285B2 (en) * 2015-02-26 2021-04-06 Red Hat, Inc. Grid topology change in a distributed data grid when iterating on the contents of the data grid
US10284621B2 (en) * 2015-11-09 2019-05-07 International Business Machines Corporation Session management
US10339127B2 (en) 2016-01-28 2019-07-02 Oracle International Corporation Guaranteed commit outcome in a distributed transaction processing system
US10521272B1 (en) * 2016-03-30 2019-12-31 Amazon Technologies, Inc. Testing in grid computing systems
US20180039628A1 (en) * 2016-08-03 2018-02-08 Oracle International Corporation System and method for providing dynamic relocation of tenants in a multi-tenant database environment
US10742748B2 (en) 2016-08-12 2020-08-11 Oracle International Corporation System and method for supporting live addition of a tenant in a connection pool environment
US10942907B2 (en) 2016-11-04 2021-03-09 Oracle International Corporation Safe release of database sessions for planned maintenance operations
US10715629B2 (en) 2017-02-28 2020-07-14 Google Llc Seamless context switch
US11556500B2 (en) 2017-09-29 2023-01-17 Oracle International Corporation Session templates
CN108089800B (en) * 2017-12-13 2022-01-18 北京小米移动软件有限公司 Anti-disturbance mode entering method and device
CN109446267B (en) * 2018-09-25 2023-06-02 国家电网有限公司客户服务中心 Cross-database data integration system and method based on 95598 ex-situ double-active disaster recovery model
CN109408499B (en) * 2018-10-22 2022-10-11 福建星瑞格软件有限公司 Auditing method and system for matching database access users
US10698770B1 (en) * 2019-04-10 2020-06-30 Capital One Services, Llc Regionally agnostic in-memory database arrangements with reconnection resiliency
US11936739B2 (en) * 2019-09-12 2024-03-19 Oracle International Corporation Automated reset of session state
US11687507B2 (en) 2019-09-12 2023-06-27 Oracle International Corporation Termination of database sessions for planned failover
US11281794B2 (en) * 2019-09-26 2022-03-22 Microsoft Technology Licensing, Llc Fine grained access control on procedural language for databases based on accessed resources
US11652892B2 (en) 2019-09-30 2023-05-16 Oracle International Corporation Automatic connection load balancing between instances of a cluster
US11416585B2 (en) * 2019-12-18 2022-08-16 Disney Enterprises, Inc. Define return value at runtime
CN111209133B (en) * 2019-12-31 2023-09-12 深圳证券通信有限公司 Replay recovery method for software faults of ordered system
CN111352716B (en) * 2020-03-10 2024-03-01 深圳市腾讯计算机系统有限公司 Task request method, device and system based on big data and storage medium
US11522975B2 (en) * 2020-10-09 2022-12-06 Sap Se Double persistence layer using an in-memory map
US11356325B1 (en) * 2020-11-17 2022-06-07 Ciena Corporation Accelerating transactions from a trusted source
US11861041B2 (en) 2021-02-08 2024-01-02 Capital One Services, Llc Methods and systems for automatically preserving a user session on a public access shared computer
US11531684B2 (en) * 2021-02-20 2022-12-20 Meta Platforms, Inc. Session-level read your writes consistency among digital data versions in a distributed network
CN116302845B (en) * 2023-05-17 2023-08-15 建信金融科技有限责任公司 Method and device for determining transaction operation mode, electronic equipment and storage medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050038848A1 (en) * 2003-08-14 2005-02-17 Oracle International Corporation Transparent session migration across servers
CN101076992A (en) * 2004-08-13 2007-11-21 塞特里克斯系统公司 A method and systems for securing remote access to private networks
CN102104532A (en) * 2009-12-22 2011-06-22 杭州华三通信技术有限公司 Fault switching method and system and hub provider edge (Hub PE) router

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6041357A (en) 1997-02-06 2000-03-21 Electric Classified, Inc. Common session token system and protocol
US6490610B1 (en) * 1997-05-30 2002-12-03 Oracle Corporation Automatic failover for clients accessing a resource through a server
US6801914B2 (en) 1999-03-15 2004-10-05 Microsoft Corporation Persistent client-server database sessions
US6668304B1 (en) * 2000-01-18 2003-12-23 International Business Machines Corporation Transaction support on logical disks
US6732175B1 (en) * 2000-04-13 2004-05-04 Intel Corporation Network apparatus for switching based on content of application data
US6862689B2 (en) * 2001-04-12 2005-03-01 Stratus Technologies Bermuda Ltd. Method and apparatus for managing session information
US6442552B1 (en) 2000-06-30 2002-08-27 Hewlett-Packard Company Method and apparatus for implementing three tier client asynchronous transparency
US7539746B2 (en) 2001-02-01 2009-05-26 Emc Corporation Highly available transaction failure detection and recovery for electronic commerce transactions
US7849173B1 (en) * 2001-12-31 2010-12-07 Christopher Uhlik System for on-demand access to local area networks
US7949702B2 (en) 2002-01-09 2011-05-24 International Business Machines Corporation Method and apparatus for synchronizing cookies across multiple client machines
US6963996B2 (en) 2002-04-30 2005-11-08 Intel Corporation Session error recovery
US7487264B2 (en) * 2002-06-11 2009-02-03 Pandya Ashish A High performance IP processor
US7631107B2 (en) * 2002-06-11 2009-12-08 Pandya Ashish A Runtime adaptable protocol processor
US7346905B2 (en) 2003-06-10 2008-03-18 International Business Machines Corporation Apparatus and method for maintaining resource integrity without a unified transaction manager in a software environment
US7587400B2 (en) 2004-08-12 2009-09-08 Oracle International Corporation Suspending a result set and continuing from a suspended result set for transparent session migration
US7415470B2 (en) 2004-08-12 2008-08-19 Oracle International Corporation Capturing and re-creating the state of a queue when migrating a session
US7502824B2 (en) 2004-08-12 2009-03-10 Oracle International Corporation Database shutdown with session migration
US7761435B2 (en) * 2005-04-29 2010-07-20 Sap Ag External persistence of session state information
US7853698B2 (en) * 2005-04-29 2010-12-14 Sap Ag Internal persistence of session state information
US7430559B2 (en) 2005-09-21 2008-09-30 Microsoft Corporation Generalized idempotent requests
US7640242B2 (en) * 2006-03-24 2009-12-29 Oracle International Corp. Light weight locking model in the database for supporting long duration transactions
US7877373B2 (en) * 2006-06-30 2011-01-25 Oracle International Corporation Executing alternative plans for a SQL statement
US7634512B2 (en) * 2006-10-20 2009-12-15 Oracle International Corporation Migrating temporary data of a session
US20080120304A1 (en) * 2006-11-21 2008-05-22 Calio Robert J Method and system for providing high performance data modification of relational database tables
US8768890B2 (en) 2007-03-14 2014-07-01 Microsoft Corporation Delaying database writes for database consistency
CN101089857B (en) * 2007-07-24 2011-05-11 中兴通讯股份有限公司 Internal store data base transaction method and system
US7904434B2 (en) * 2007-09-14 2011-03-08 Oracle International Corporation Framework for handling business transactions
US20100030818A1 (en) 2008-07-31 2010-02-04 Yahoo! Inc. System and method for applying once a transaction delivered in a message published asynchronously in a distributed database
US8224850B2 (en) 2008-08-13 2012-07-17 Motorola Mobility, Inc. Method and system for determining users that satisfy desired conditions
US8296358B2 (en) 2009-05-14 2012-10-23 Hewlett-Packard Development Company, L.P. Method and system for journaling data updates in a distributed file system
US20100318394A1 (en) 2009-06-15 2010-12-16 Microsoft Corporation Executing transactions as an atomic unit
US8556724B2 (en) 2009-09-30 2013-10-15 Zynga Inc. Apparatuses, methods and systems for an online game manager
CN101727475B (en) * 2009-10-12 2012-12-19 奇智(上海)信息科技有限公司 Method, device and system for acquiring database access process
EP2363806A1 (en) 2010-03-03 2011-09-07 Software AG Connection handler and method for providing applications with heterogeneous connection objects
US8868514B2 (en) 2011-01-07 2014-10-21 Microsoft Corporation Transaction support for distributed data
US8549154B2 (en) 2011-09-09 2013-10-01 Oracle International Corporation Recovering stateful read-only database sessions
US9600371B2 (en) 2011-09-09 2017-03-21 Oracle International Corporation Preserving server-client session context
US8984170B2 (en) 2011-09-09 2015-03-17 Oracle International Corporation Idempotence for database transactions
US8725882B2 (en) 2011-09-09 2014-05-13 Oracle International Corporation Masking database outages from clients and applications
US8924346B2 (en) 2011-09-09 2014-12-30 Oracle International Corporation Idempotence for database transactions
US10430391B2 (en) 2012-09-28 2019-10-01 Oracle International Corporation Techniques for activity tracking, data classification, and in database archiving

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050038848A1 (en) * 2003-08-14 2005-02-17 Oracle International Corporation Transparent session migration across servers
CN101076992A (en) * 2004-08-13 2007-11-21 塞特里克斯系统公司 A method and systems for securing remote access to private networks
CN102104532A (en) * 2009-12-22 2011-06-22 杭州华三通信技术有限公司 Fault switching method and system and hub provider edge (Hub PE) router

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112559168A (en) * 2015-01-20 2021-03-26 赛姆普蒂夫技术公司 Computer-implemented method and system for generating scroll time information and readable medium
CN111324632A (en) * 2018-12-17 2020-06-23 Sap欧洲公司 Transparent database session recovery with client-side caching
CN111324632B (en) * 2018-12-17 2023-10-20 Sap欧洲公司 Transparent database session restoration with client-side caching
CN109992620A (en) * 2019-04-03 2019-07-09 重庆电力高等专科学校 Intelligent control conversational system of computer

Also Published As

Publication number Publication date
US20140229531A1 (en) 2014-08-14
EP2903239A1 (en) 2015-08-05
EP2903239B1 (en) 2017-02-01
WO2013036882A1 (en) 2013-03-14
US9591103B2 (en) 2017-03-07
US9124670B2 (en) 2015-09-01
US8725882B2 (en) 2014-05-13
US20150326673A1 (en) 2015-11-12
EP2754283B1 (en) 2015-03-25
CN103782573B (en) 2017-11-07
EP2754283A1 (en) 2014-07-16
CN107688487A (en) 2018-02-13
CN107688487B (en) 2021-05-07
US20130066955A1 (en) 2013-03-14

Similar Documents

Publication Publication Date Title
CN103782573A (en) Masking server outages from clients and applications
KR102510195B1 (en) Transaction Processing Methods, Devices and Appliances, and Computer Storage Media
CN103782574B (en) Idempotence for database transactions
US11080259B1 (en) Scalable transaction-based data repository service
US10942823B2 (en) Transaction processing system, recovery subsystem and method for operating a recovery subsystem
US9965364B2 (en) Fault tolerant listener registration in the presence of node crashes in a data grid
US8868514B2 (en) Transaction support for distributed data
CN104813276A (en) Streaming restore of a database from a backup system
CN107710215A (en) The method and apparatus of mobile computing device safety in test facilities
US20200104404A1 (en) Seamless migration of distributed systems
CN114925084B (en) Distributed transaction processing method, system, equipment and readable storage medium
US11544245B2 (en) Transaction processing method, apparatus, and device and computer storage medium
US20170373930A1 (en) Configuration management for cloud storage system and method
US20220382637A1 (en) Snapshotting hardware security modules and disk metadata stores
US11880495B2 (en) Processing log entries under group-level encryption
US11899811B2 (en) Processing data pages under group-level encryption
US11467926B2 (en) Enhanced database recovery by maintaining original page savepoint versions
US20230185675A1 (en) Backup and recovery under group-level encryption
CN104104731B (en) A kind of method and device for safeguarding data consistency
WO2022250826A1 (en) Managing keys across a series of nodes, based on snapshots of logged client key modifications
CN117874145A (en) Strong agreement method, device, equipment and storage medium for master-slave database
CN115297129A (en) Data communication network establishing method and device

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant