IP Library › Granted Patent US 10,178,184
Granted Patent B2
US 10,178,184 · App. 15/204,351 · Granted Jan 8, 2019

System and method for session handling in a multitenant application server environment

Inventors: Joshua Dorr (San Jose, CA); Steven Liu (Beijing, CN); Lenny Phan (Sunnyvale, CA)
Assignee: ORACLE INTERNATIONAL CORPORATION
H04L67/142H04L67/10H04L67/1027H04L67/146H04L67/147H04L69/40
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,178,184
App. No.
15/204,351
Granted
Jan 8, 2019
Kind
B2
Abstract

In accordance with an embodiment, systems and methods for session handling in a multitenant application server environment are provided. The ability to replicate a session is important but equally so is the ability to ensure the session is successfully deserialized on some server in order to serve the request. After a server has been shut down, the front end can fail over the request to one of the remaining server members in a cluster. Once the server receives the request it can attempt to grab the session from a server that holds a copy of that session. When a patched or unpatched server attempts to load the session that originated from a server of the opposite state, it can fail to deserialize the session, and inform the traffic director of severs in the cluster that are capable of deserializing the session.

Claims (72)

1. A system for session handling in a multitenant application server environment, comprising:

one or more computers, including an application server environment executing thereon, together with:

a plurality of deployable resources which can be used within the application server environment,

one or more resource groups, which including groupings of the deployable resources for use by a partition within a domain, and

one or more partitions, wherein each of the one or more partitions provides an administrative and runtime subdivision of the domain, and wherein the system can associate the one or more partitions and the one or more resource groups with a tenant, for use by the tenant; and

wherein the system uses a patching process that is performed by the application server environment to apply patches to a plurality of servers in the domain in a controlled manner that maintains operations of the domain without interruption; and

wherein the system provides for session handling during the patching process, wherein session handling comprises:

receiving at a traffic director a request for a session, the session being associated with a first version of a server patch, the first version of the server being capable of deserializing the requested session,

attempting to load the requested session at a first server of the plurality of servers, the first server comprising a patched version of the first version of the server patch, the patched version of the first version of the server being incapable of deserializing the requested session,

receiving, at the traffic director, a response message from the first server of the plurality of servers indicating that the first server is unable to deserialize the requested session, the response message comprising a list of one or more servers of the plurality of servers comprising the first version of the server patch, the list including a second server of the plurality of servers, and

loading the requested session at the second server of the plurality of servers.

2. The system of claim 1 , wherein the patching process comprises:

applying a patch to create a patched home directory; and

performing a rollout of the patched home directory to the plurality of servers in the domain that are to be patched, including for each server of the plurality of servers in the domain to be patched:

shutting down the server,

updating the server to point to an instance of the patched home directory, and

starting the server.

3. The system of claim 1 , wherein the list of one or more servers is contained in a header of the response message.

4. The system of claim 3 , wherein the traffic director randomly selects the second server of the plurality of servers from the list of servers capable of loading the requested session.

5. The system of claim 1 , wherein attempting to load the requested session at the first server of the plurality of servers comprises:

storing attributes of the requested session as a byte array; and

performing a check to determine whether the first server of the plurality of servers can load the requested session.

6. The system of claim 1 , wherein the first server of the plurality of servers is a patched server, and wherein the second server of the plurality of servers is an unpatched server, and wherein the requested session is an unpatched session.

7. The system of claim 1 , wherein the application server environment includes a Java EE application server, and wherein each resource group includes one or more related applications together with resources upon which those applications depend, and wherein the system is provided within a cloud environment, to support multiple tenants operating within the cloud environment.

8. A method for session handling in a multitenant application server environment, comprising:

providing, at one or more computers, including an application server environment executing thereon,

a plurality of deployable resources which can be used within the application server environment,

one or more resource groups, which including groupings of the deployable resources for use by a partition within a domain, and

one or more partitions, wherein each of the one or more partitions provides an administrative and runtime subdivision of the domain,

associating each of the one or more partitions and resource groups with a tenant, for use by the tenant;

providing a patching process that is performed by the application server environment to apply patches to a plurality of servers in the domain in a controlled manner that maintains operations of the domain without interruption; and

providing for session handling during the patching process, wherein session handling comprises:

receiving at a traffic director a request for a session, the session being associated with a first version of a server patch, the first version of the server being capable of deserializing the requested session,

attempting to load the requested session at a first server of the plurality of servers, the first server comprising a patched version of the first version of the server patch, the patched version of the first version of the server being incapable of deserializing the requested session,

receiving, at the traffic director, a response message from the first server of the plurality of servers indicating that the first server is unable to deserialize the requested session, the response message comprising a list of one or more servers of the plurality of servers comprising the first version of the server patch, the list including a second server of the plurality of servers, and

loading the requested session at the second server of the plurality of servers.

9. The method of claim 8 , wherein the patching process comprises:

applying a patch to create a patched home directory; and

performing a rollout of the patched home directory to the plurality of servers in the domain that are to be patched, including for each server of the plurality of servers in the domain to be patched:

shutting down the server,

updating the server to point to an instance of the patched home directory, and starting the server.

10. The method of claim 8 , wherein the list of one or more servers is contained in a header of the response message.

11. The method of claim 10 , wherein the traffic director randomly selects the second server of the plurality of servers from the list of servers capable of loading the requested session.

12. The method of claim 8 , wherein attempting to load the requested session at the first server of the plurality of servers comprises:

storing attributes of the requested session as a byte array; and

performing a check to determine whether the first server of the plurality of servers can load the requested session.

13. The method of claim 8 , wherein the first server of the plurality of servers is a patched server, and wherein the second server of the plurality of servers is an unpatched server, and wherein the requested session is an unpatched session.

14. The method of claim 8 , wherein the application server environment comprises a Java EE application server, and wherein each resource group includes one or more related applications together with resources upon which those applications depend, and wherein the method is performed in a cloud environment, to support multiple tenants operating within the cloud environment.

15. A non-transitory computer readable storage medium, including instructions stored thereon for session handling in a multitenant application server environment which when read and executed by one or more computers cause the one or more computers to perform the steps comprising:

providing, at one or more computers, including an application server environment executing thereon,

a plurality of deployable resources which can be used within the application server environment,

one or more resource groups, which including groupings of the deployable resources for use by a partition within a domain, and

one or more partitions, wherein each of the one or more partitions provides an administrative and runtime subdivision of the domain,

associating each of the one or more partitions and resource groups with a tenant, for use by the tenant;

providing a patching process that is performed by the application server environment to apply patches to a plurality of servers in the domain in a controlled manner that maintains operations of the domain without interruption; and

providing for session handling during the patching process, wherein session handling comprises:

receiving at a traffic director a request for a session, the session being associated with a first version of a server patch, the first version of the server being capable of deserializing the requested session,

attempting to load the requested session at a first server of the plurality of servers, the first server comprising a patched version of the first version of the server patch, the patched version of the first version of the server being incapable of deserializing the requested session,

receiving, at the traffic director, a response message from the first server of the plurality of servers indicating that the first server is unable to deserialize the requested session, the response message comprising a list of one or more servers of the plurality of servers comprising the first version of the server patch, the list including a second server of the plurality of servers, and

loading the requested session at the second server of the plurality of servers.

16. The non-transitory computer readable storage medium of claim 15 , wherein the patching process comprises:

applying a patch to create a patched home directory; and

performing a rollout of the patched home directory to the plurality of servers in the domain that are to be patched, including for each server of the plurality of servers in the domain to be patched:

shutting down the server,

updating the server to point to an instance of the patched home directory, and

starting the server.

17. The non-transitory computer readable storage medium of claim 15 , wherein the list of one or more servers is contained in a header of the response message.

18. The non-transitory computer readable storage medium of claim 17 , wherein the traffic director randomly selects the second server of the plurality of servers from the list of servers capable of loading the requested session.

19. The non-transitory computer readable storage medium of claim 15 , wherein attempting to load the requested session at the first server of the plurality of servers comprises:

storing attributes of the requested session as a byte array; and

performing a check to determine whether the first server of the plurality of servers can load the requested session.

20. The non-transitory computer readable storage medium of claim 15 , wherein the first server of the plurality of servers is a patched server, and wherein the second server of the plurality of servers is an unpatched server, and wherein the requested session is an unpatched session.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 7, 2016
From: DORR, JOSH; LIU, STEVEN; PHAN, LENNY
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 039104/0115 →
Continuity (2)
Provisional Application 62191798 · Jul 13, 2015
Related Publication 20170019485A1 · Jan 19, 2017
Cited By (1)
US 12,250,267