The business rely more and more on software to operate critical business processes which are executed by business applications expected to operate without downtime. Many companies rely on Java as a platform to run their business applications, but sometimes the latter put Java platform in extreme situations (memory shortages, deadlocks etc.). As a result of this, many Java application servers are enriched with high availability capabilities. In practice, high-available infrastructure is just a prerequisite to zero business downtime and it is not (always) enough to ensure continuous and reliable execution of Java business applications, although customers expect just that. This is a common challenge for Java Application Servers. Just to give you the right perspective let me point out that SAP NetWeaver Composition Environment (CE (https://www.sdn.sap.com/irj/sdn/ce)) is based on the same Java foundation (Business Intelligence Performance Tuning) as SAP Business ByDesign (http://www.sap.com/company/press/press.epx?pressid=8270), where thousands of Java business applications have to be served on demand. The Java Application Server (Business Intelligence Performance Tuning) that comes with SAP NetWeaver CE 7.1 is enriched with new supportability and robustness capabilities. All of them can be classified in three major groups: ** Real time monitoring – to forecast extreme condition and give more time for reaction ** Trouble shooting – to find easily the reason of the crash in order to prevent it in the future Maybe you wonder why exactly these groups. Well, look at the complex machines… (1) The ships have the ability to isolate internal sectors when there is a break in the hull and thus prevent sinking – damage control. (2) Planes, ships and even cars have real time monitoring systems which give easy to understand status at any time (3) Planes and ships have black boxes, which in case of a crash, help to understand what went wrong in order to prevent it in the future – trouble shooting. Now let’s see what can be found under the hood of SAP NetWeaver Application Server Java, the Java foundation of SAP NetWeaver CE 7.1 and how these capabilities make the Java business applications more robust to extreme situations. In order to minimize the impact of any negative effect of an extreme situation, the architecture of the Java foundation of NetWeaver CE 7.1 was done with ‘damage control’ philosophy in mind. The idea is that no matter what service interruption or process crash happens there must be as least as possible users affected. The architecture of the Java Instance of SAP NetWeaver Composition Environment Let’s start our tour with the entry point for the user requests. In SAP NetWeaver CE 7.1 you will find the Internet Communication Manager (ICM), it provides top-class scalability and performance even in the largest SAP installations. ICM communicates with the Java server nodes through memory pipes (called FCA – Fast Channel Architecture), not through sockets. There are two reasons for this. First, ICM and the Java server nodes are usually on one and the same host. Second, there are more things that can be broken in a socket (networking media, streams and etc.) – the less things to break, the better. There is a new kid on the ‘Java Instance’ block – shared memory. The shared memory accommodates the request queue for pending user requests. What is this queue good for? – In case of a heavy load the incoming user requests wait there for, a while, to be processed. The queue is not part of the Java server process as it was in SAP NetWeaver 7.0, the reason for this is to assure damage control. Even in case of a process crash the users’ requests waiting for processing will be redirected by ICM to a healthy Java server node in the Java Instance. As a result, in case of crash, the users whose requests were not in processing state do not mention that something went wrong on the server. This memory is available during the whole lifetime of the Java Instance. The only way to lose the shared memory is to lose the Java Instance which in practice means to lose the physical machine on which the Java Instance is running. To be more stable in extreme conditions, by default, the Java server process, in SAP NetWeaver CE 7.1, is running on top of SAP’s own Java Virtual Machine (SAP JVM). SAP JVM is fully certified Java SE 5 -compliant Virtual Machine based on SUN’s HotSpot technology. But that is not all. Remember the famous Java slogan ‘+Write once run everywhere+’. Most of you maybe know that there is a catch in it. There are many JVM implementations, provided by different vendors, running on different operating system platforms (Windows, Linux, Solaris, HP-UX, Mac Os and AIX) and there are subtle differences the way a Java program behaves on different platforms. That is why some people joke that ‘+Write once, run everywhere+’ turns into ‘+Write once, debug everywhere+’. But this is not the case with SAP JVM because it behaves in one and the same way on all platforms supported by SAP. Furthermore, because this is SAP’s own JVM it is enriched with robustness and supportability capabilities which are integrated with SAP NetWeaver Application Server Java. Under the hood of SAP NetWeaver CE 7.1 you will also find Shared Session Store. This is a special memory which is initialized by SAP JVM. Its function is again to ensure damage control. In NetWeaver CE 7.1 active and inactive sessions are separated. Inactive sessions are saved in the shared session store but active ones are in the Java server nodes. Thus, if a Java server node crash, only the (few) active sessions will be lost and only their active users may experience some problems. The inactive sessions will stay intact and their users will not even notice that there were any problems. As a result, these users will continue to work on the healthy nodes. In practice, the number of inactive sessions is significantly bigger than the number of the active ones. The only way to impact the inactive users is to lose the shared session store, but this again means to lose the whole Java Instance, which in practice is to lose the physical machine. To forecast extreme situations, SAP NetWeaver CE 7.1 offers SAP Management Console (SAP MC). It can also be found in SAP NetWeaver 04 and SAP NetWeaver 7.0, but in SAP NetWeaver CE 7.1 it is significantly enriched with features. After all, it is as easy to understand as a traffic light is. To name a few improvements, with SAP MC in SAP NetWeaver CE 7.1 you can check the status of the Web and EJB sessions, the access points to the Java system, the logs of the system – of course in human readable format. The “classical” SAP MC is available only on Windows platforms but owing to the applet version of SAP MC you can use the same SAP MC functionality, with the same look and feel, on non-Windows platforms by calling it conventiently in your Web browser. SAP MC is also integrated in NetWeaver Developer Studio as an Eclipse plug-in that provides the functionality that may be of some interest for a developer.