Wednesday, November 24, 2010

Java Engine Administration Tools

(Click on the image above to view large)

Visual Administrator: Remote monitoring and management of managers, services, libraries, and interfaces of each element of an instance.

GUI Config Tool: Offline configuration of the J2EE Engine cluster elements.

Text-Only Config Tool: Offline configuration of the J2EE Engine cluster elements.

Configuration Editor: Configuration of the current state of the Configuration Database.

Shell console Administrator: Text based alternative to the Visual Administrator.

Software Deployment Manager: Manage and deploy software packages.

System Info Page: Overview of System Configuration and its state.

Logfiles Startup J2EE Instance


Log files: The important log files involved in the startup process.

Most of the log files are located in the directory
Unix : /usr/sap//<>/work
Windows : c:\usr\sap\\<>\work

Some of the sapstart logfiles are located in the home directory of the user directory

The startup process has run correctly for the dispatcher and server instances if status 3 is reached
in dev_dispatcher : JLaunchISetState: change state from [Starting (2)] to [Running (3)]
in dev_server0 : JLaunchISetState: change state from [Starting applications (10)] to [Running (3)]

Log files types:
dev* Tracefile of Process
std* Standardoutput
jvm* Messages of the Java VM

JControl and JLaunch


JControl – Java Instance Controller



JControl: A native program that starts, stops, and monitors the processes of a Java instance (usually a dispatcher and several server processes). The program implements the SAP signal handling to stop the instance. JControl starts the JLaunch processes.

JControl controls J2EE processes …
JControl is the master process of all J2EE worker processes
Controls the lifecycle of the J2EE instance
Restart of crashed processed
Termination of hanging processes
Sends shutdown signal to instance processes
responsible for starting the processes in the right order (bootstrapping..)
integration of different processes into one J2EE instance (SDM, ICM, ...)
provides the monitoring information in a shared memory segment
supports SAP profiles to share configurations with the ABAP Stack


JLaunch – Java Program Launcher


JLaunch has following tasks:
Read the properties of the program to host
Read the VM properties from the database during startup process
Attach to the administration shared memory segment
Load the shared library of the Java VM

JLaunch starts a Java program. It loads the JVM into its own address space and then represents the required cluster element. The program can receive from notification from the JControl process via named pipes to stop the cluster element, and terminates, if the JControl stops running (fork emulation under Windows).

JCMon – Monitor Program


Command line tool
Overview about the instance and process state
Local administration menu for the local instance and their processes
Cluster administration menu for remote operations
------------------------------------------------------------
SAP System Name : C11
SAP System : 00
MS Host : pcj2ee01
MS Port : 3601
Process Count : 4
PID of JControl : 7244
State of JControl : All processes running
State inside MS : All processes running
Admin URL :
------------------------------------------------------------

|Idx |Name |PID |State |Error|Restart|
|--- |------------------- |--------|--------------------|----- |------- |
| 0 |server0 | 5784 |Running | 0 |yes |
| 1 |server1 | 2216 |Running | 0 |yes |
| 2 |dispatcher | 4748 |Running | 0 |yes |
| 3 |SDM | 436 |Running | 0 |yes |
------------------------------------------------------------

Jcmon is a J2EE instance monitor program.
To start jcmon enter with the adm user
(a) jcmon pf=/usr/sap//sys/profile/__.
(b) Enter command ‘20’ to display the main menu.






Start/Stop of Java Engine processes in ICM Monitor


You can use the ICM to manage the Java Engine as well. You can find the functions in the ICM monitor (Transaction SMICM or by choosing Administration → System Management → Monitor → System Monitoring → Internet Communication Manager) choose Administration → J2EE Server on the initial screen.

The following functions are available:

-> Sending a Soft Shutdown (With or Without a Restart):
The (ABAP) dispatcher of the SAP Web Application Server sets the restart flag for the J2EE
Engine and sends the SOFTSHUTDOWN message to the J2EE Engine. The dispatcher does
not actively close the connection, the J2EE Engine must close itself instead. If the application
server is restarted, the J2EE Engine is restarted by the dispatcher.

-> Sending a Hard Shutdown (With or Without a Restart):
The (ABAP) dispatcher of the SAP Web Application Server sets the restart flag for the J2EE
Engine and sends the HARDTSHUTDOWN message to the J2EE Engine. The dispatcher
does not actively close the connection, the J2EE Engine must close itself instead. If the
application server is restarted, the J2EE Engine is restarted by the (ABAP) dispatcher.

-> Ending the Process (With or Without a Restart):
The SAP Web Application Server’s dispatcher sets the restart flag for the J2EE Engine and
sends a signal to the process (shell or Java process). If the application server is restarted, the
J2EE Engine is restarted by the dispatcher.

-> Restart Yes/No
This sets the J2EE Engine’s restart flag.


Starting and Stopping SAP with scripts (UNIX & Windows)


Starting the SAP System
startsap [db|r3|j2ee|ccms|all|check] [] []

Examples
startsap - to start the whole system
startsap j2ee DVEBMGS00 - to start the J2EE-Engine of the instance DVEBMGS00. The instance name is required if more than one instance is configured.
startsap r3 - to start only the ABAP part of the system

Stopping the SAP System
stopsap [db|r3|j2ee|ccms|all|check] [] []

Examples
stopsap - to stop the whole system
stopsap j2ee DVEBMGS00 - to stop the J2EE-Engine of the instance DVEBMGS00. The instance name is required if more than one instance is configured.
stopsap r3 - to stop only the ABAP part of the system


􀂃 The start and stop of the SAP system are done using the scripts startsap and stopsap in the exe directory.
􀂃 You have to be logged on to the SAP system hosts as user adm.
􀂃 If there are multiple SAP instances on one host – for example, a central instance and a dialog instance you have to add an extra parameter to the scripts:
􀂃 startsap ; stopsap
􀂃 For example, enter: startsap DVEBMGS00
􀂃 SAP Web AS J2EE only system: The instance name (instance ID) of the central instance is JC, the instance name of a J2EE dialog instance is J.
􀂃 To view all the processes use command: ps -ef | grep jlaunch

J2EE Startup Framework


The J2EE Startup and Control Framework

􀂄 … is an infrastructure, situated between the operating system and the Java VM
􀂄 … is used to start, stop, and monitor a Java Instance
􀂄 … loads the JVM and restarts processes, which have died/crashed
􀂄 … comprises the programs Jcontrol, Jlaunch and Jcmon

The Java startup and control framework comprises the programs JControl and Jlaunch. JLaunch is started by JControl and itself starts the bootstrap Java program or an element of the Java Instance (dispatcher or server process). Whereas the Jcmon is a command line monitor program and is used to administrate the framework.

Java startup and control framework is used to start, monitor, and stop a Java instance:
􀂋Integration of Java Processes into the SAP instance concept
􀂋Inherit all management concepts from the ABAP stack
􀂋Integration into existing SAP instance management
􀂋Control and Restart functionality of J2EE processes (Watchdog)
􀂋Daemons for NT (sapserv.exe)
􀂋Remote Control of all J2EE instances in the cluster
􀂋Cluster wide management (shutdown, restart ...)
􀂋Integration of the Startup Framework Client into the IDE
􀂋Preparation of Remote Debugging Support

Monday, November 1, 2010

J2EE Engine - Profile Parameters

icm/HTTP/j2ee_ Determines the ICM’s communication with the J2EE Engine.

Exe/j2ee full path to JControl

rdisp/j2ee_error Number of incorrect attempts to start a J2EE Engine before the restart is deactivated.

rdisp/j2ee_start Activates or deactivates starting the J2EE Engine.

rdisp/j2ee_start_lazy
- If 1 and if the rdisp/j2ee_start is set - the J2EE Engine it is not started until the ABAP runtime environment has been fully initialized. This avoids problems that are caused by a long initialization phase.
- If 0 (default) – the J2EE Engine can be started without waiting for the ABAP initialization.

rdisp/j2ee_timeout Time span, the J2EE Engine must log on to the Web Dispatcher.

SDM Instance



Software Deployment Manager (SDM)

SDM Server
􀂋 started automatically as part of WEB AS 6.40
􀂋 one SDM Server per WEB AS 6.40 with J2EE Engine is necessary

SDM Interfaces
1) Commandline Interface (sdm.bat or sdm.sh)
(a) A new SDM process is started each time a command is executed
(b) No SDM Server may run at the same time (this is checked).

2) JAVA API (SDMclient.sda) needs a running SDM Server

3) SDM Gui (sdmgui.bat or sdmgui.sh) needs a running SDM Server
  • Another special instance is the one that installed the SDM (Software Deployment Manager). This one usually runs with the database and Central Services on the same machine and is then indicated as the central instance.
  • The Software Deployment Manager (SDM) is a tool with which you can manage and deploy software packages that you receive from SAP or created with NetWeaver Developer Studio.
  • The Software Deployment Manager (SDM) groups several different deployment types in a single network interface for the deployment of any software that you develop with the SAP NetWeaver Developer Studio.
  • In all modes SDM is only able to handle one access at a time.

Java Instance – Server Process



Server Process components:

Connection request handler receives the first request from a client. From this time point on, the client has a fixed connection to the dispatcher.
Session level services are services that are assigned to a session.
Application-level services or the actual application program.

1) The Server Processes of the J2EE Engine actually execute the J2EE application.
Each server process is multi-threaded, and can therefore process a large number of requests simultaneously. Java Dispatcher assigns requests to the server processes.

2) The identification of the jlaunch processes can be easy done with their PID, the PID is also represented in the monitoring tools as the SAP Management Console.

Java Instance – Java Dispatcher



Java Dispatcher components:

Connection request handler receives the first request from a client. From this time point on, the client has a fixed connection to the dispatcher.

Connection manager manages the existing connections to the clients.

Session level services are services that are assigned to a session.

Communication handler forwards the request to the server process.
Accumulating requests are stored in the request queue.


1) A Java instance is a unit in the SAP Web Java cluster, which can be started, stopped, and monitored separately. It runs on a physical server; but it is also possible to run several instances on one server. An instance is identified by the system ID (SID) and the instance number.

2) One Java instance contains at least one Dispatcher and one Server Process, the Central Services (Message, Enqueue) and the SDM.

3) A Java instance is started and stopped by the Java Startup and Control Framework.

4) The Java dispatcher receives the client request and forwards it to the server process with the lowest capacity usage. If there is already a connection to the client, the request goes to the server process that processes this client.

5) Dispatcher processes are represented by a jlaunch processes

6) The Java Dispatchers do not communicate to each other, they are light applications used for load balancing to the local servers only.

7) Interprocess communication Dispatcher on one box – Server on other box is not possible.

Locking Adapter in the Visual Administrator



With the Locking Adapter checks and tests of the Enqueue Service can be done.

􀂄 The locking adapter service establishes the interface between the J2EE Engine and the enqueue service.
􀂄 You can display and manage locks, carry out tests, and display statistics.
􀂄 The locking adapter service is available on each server process, but it is not available on the dispatcher. It connects to the Enqueue Service and fetches requested data or sends changed data to it. As there is only one enqueue server in the system, all the locking services of the various server processes have the same information. Therefore it is not important on which
server process you use the locking adapter service.
􀂄 Locks are used for example during deployment of applications. The configuration manager requests a lock from the Locking Manager. The Locking Manager in turn requests the lock from the Enqueue Service. The relevant area in the database is locked

􀂄 To look into the Locking Adapter use the following path:
1. Start the SAP J2EE Engine visual administrator.
2. Choose Cluster -> Server 0 -> Services
3. Choose Locking Adapter
Choose the Runtime tab page to see a list of the functions offered in the locking adapter service:
􀁺 To display existing locks; choose Display Locks.
􀁺 To set and release locks, choose Create/Release Lock.
􀁺 To delete existing locks, select the locks and choose Delete Selected Locks.
􀁺 To run test programs, choose Run Tests. To run functional tests choose Execute Functional Tests, and to load tests choose Execute Load Tests).
􀁺 To display files, choose View Files. You can view the profile data or the trace file of the lowest layer of the enqueue service. This is useful for looking for errors.
􀁺 To display statistics, choose Time Statistics.