what is WEBLOGIC?
BEA Systems' WebLogic is a server software application that runs on a middle tier, between back-end databases and related applications and browser-based thin clients. WebLogic is a leading e-commerce online transaction processing (OLTP) platform, developed to connect users in a distributed computing environment and to facilitate the integration of mainframe applications with distributed corporate data and applications.
What is DOMAIN IN WEBLOGIC?
A domain consists of one or more WebLogic Server instances (and their associated resources) that you manage with a single Administration Server.
1. How do you differentiate
between a server hang and server crash issue?
When a Server crahes, the JAVA process no longer exists. When the Server is
hung, it stops responding.
We can use the weblogic.ADMIN utilty to ping the server. In case of a hang
situation we can take multiple thread dumps and analyze the cause of hang.
2. What can be the various
reasons for a server crash?
a) Native
IO
b) SSL Native Libraries
c) JVM
d) Supported Configuration
e) JDBC Driver issue
3. How do you troubleshoot a
crash?
JVM crash
generates a hs_err_pid file. We need to look into the stack trace of the
hs_err_pid file .
If the thread is from a native io, we need to disable native io.
if the stack trace is from the driver, we need to get in touch with the drive
team.
Quite possibly its a problem with driver. Changing the type of driver can be a
workaround.
If the thread shows it coming from an optimzed code, we can turn of
optimization.
If the stack is from native calls of application, its a bug with the
application and it has to b modified.
4. Ho do you troubleshoot
Server Hang?
We can
use java weblogic.Admin PING to check if we get a normal response.
We need to take multiple thread dumps with kill -3 pid on unix and CTLR Break
on Windows.
Analyze the thread dump to find the root cause.
5. What can be the reasons of
Server hang?
Memory
leak, databse query taking a long time to return, Deadlock.
6. What is memory leak?
Memory
leak is when objects are not romved from the heap even when they are not
required.
7. What are the various causes
for OUT OF MEMORY?
a)
Insufficient heap size, not able to match the extra load.
b) Objects licing too long, like HTTP Sessions.
c) Memory leak in application code.
d) Full GC not happening due to JVM Bug.
8. How to troubleshoot and
overcome such issues?
Gather
memory data by enabling GC verbose.
If its due to Http Session, timing out http session after certain interval
might help.
Look into the code for jdbc connection handling.
Optimizing the heap size according to the load.
9. When does High CPU Usage
occur?
It occurs
when one process or one thread utilizes unexpectedly high proportion of CPU.
10. How to troubleshoot it?
In
Solaris environment, we need to take pstack and prstack and see what the
threads are doing.
In Windows we need to use pslist and process explorer.
11. What is Clustering and what
is achieved through it?
Clustering
is the grouping together of servers for the purpose of high availability and
scalability.
Load balancing and Failover is achieved.
12. How does Cluster
Communication Happen?
Members
of the Cluster communicate over the Cluster Multicast IP and Port by sending
periodic heart beat messages.
13. What is the difference
between the Sun JVM and BEA JRockit JVM?
The most
well know JVM is the implementation from Sun. The Sun JVM is called HotSpot.
The Sun JVM is shipped in the Java Developer’s Kit (JDK) and Java Runtime
Environment (JRE) from Sun.
The BEA
JRockit JVM from BEA systems is optimized for reliability and performance for
server side applications. To achieve this, BEA JRockit JVM uses technologies
such as code generation, hot spot detection, code optimization, advanced
garbage collection algorithms and tight operating system integration.
14. TUning JVM Parameters.
If you
have a single processor, single thread machine then you should use the serial
collector (default for some configurations, can be enabled explicitly for with
-XX:+UseSerialGC). For multiprocessor machines where your workload is basically
CPU bound, use the parallel collector. This is enabled by default if you use
the -server flag, or you can enable it explicitly with -XX:+UseParallelGC. If
you’d rather keep the GC pauses shorter at the expense of using more total CPU
time for GC, and you have more than one CPU, you can use the concurrent
collector (-XX:+UseConcMarkSweepGC). Note that the concurrent collector tends
to require more RAM allocated to the JVM than the serial or parallel collectors
for a given workload because some memory fragmentation can occur.
15. How do you do performance
tuning of WLS?
It can be
categorized in 4 parts.
a. Application Tuning.
jsp precompilation, ejb pool size cache..
b. OS
Tuning
Setting
tcp ip parameter.
tcp_time_wait_interval
tcp_conn_req_max_q
c. Core
Server Tuning.
tune
workmanager, tune chuck size and chunck pool size, using performance packs,
conenction backlog buffering.
d. JVM
Tuning
tuning gc strategy, monitoring garbage collection..
16. What is the difference
between Development mode and Production mode of Weblogic Server?
Development
Mode:
1. The
default JDK for development domain is Sun Hotspot.
2. You can use the demo certificates for SSL.
3. Auto deployment(to admin server only) is enabled.
4. Server instances rotate their log files on start-up.
5. Admin
Server uses an automatically created boot.properties during start-up.
6. The
default maximum capacity for JDBC Datasource is 15.
7. The debugFlag which is used to start the WebLogic Workshop Debugger is
enabled.
8. In Development Mode any configuration change being done by a user doesn’t
need him to take a Lock and Edit session.
9. Availability of web service test client.
10. Nodemanger username and password: Default Admin credentials.
11. Availability of Classloader Analysis Tool: Yes.
12. Default start parameters when using Sun JDK and the default startWebLogic
script : java -client -Xms256m -Xmx512m -XX:CompileThreshold=8000
-XX:PermSize=128m -XX:MaxPermSize=256m.
Production
Mode:
1. The
default JDK for production domain is JRockit.
2. If you use the demo certificates for SSL a warning is displayed.
3. Auto deployment(to admin server only) is disabled.
4. Server instances rotate their log files when it reaches 5MB.
5. Admin Server prompts for username and password during start-up.
6. The default maximum capacity for JDBC Datasource is 25.
7. The debugFlag which is used to start the WebLogic Workshop Debugger is
disabled.
8. In Production Mode the user needs to procure a Lock and Edit session before
trying to make any configurational changes.
9. No Availability of web service test client.
10. Nodemanger username and password: Randomly generated
11. Availability of Classloader Analysis Tool: No.
12. Default start parameters when using Sun JDK and the default startWebLogic
script : java -server -Xms256m -Xmx512m -XX:MaxPermSize=256m.
17. What is HTTP tunneling? How
can we configure it on Weblogic?
HTTP
tunneling provides a way to simulate a stateful socket connection between
WebLogic Server and a Java client when your only option is to use the HTTP
protocol. It is generally used to tunnel through an HTTP port in a
security firewall. HTTP is a stateless protocol, but WebLogic Server provides
tunneling functionality to make the connection appear to be a regular
T3Connection.
Steps to configure Http tunneling.
Login
into the Admin Console, click on the server on which you want to enable he Http
Tunneling feature
Click on the Protocols tab ? General ? check the “Enable Tunneling” check box.
Now you
can communicate with the JVMs (Server Instances) using protocols other than t3
18. What is the difference
between T3 and HTTP protocol?
WebLogic
uses the T3 protocols for internal and external connections to the servers. The
T3 protocol often is used in WebLogic’s implementation of RMI. Proprietary of
WebLogic Server.
Http
protocols are used primarily for HTTP communication between the browser and the
web server. Standard follows the W3C (World Wide Web Consortium).
Note: All
of these protocols are, by default, multiplexed over the same connection to the
server’s address and port. So you can access a web page hosted by the server
using a URL such as http://host:port/page.jsp. An external client can set up an
initial JNDI context to a server using the URL t3://host:port/. All that has
changed is the protocol over which the client must communicate with the server.
1)How do I provide
user credentials for starting a server?
When you create a
domain, the Configuration Wizard prompts you to provide the username and
password for an initial administrative user. If you create the domain in
development mode, the wizard saves the username and encrypted password in a
boot identity file. A WebLogic Server instance can refer to a boot identity
file during its startup process. If a server instance does not find such a
file, it prompts you to enter credentials.
If you create a domain
in production mode, or if you want to change user credentials in an existing
boot identity file, you can create a new boot identity file.
2)Can I start a
Managed Server if the Administration Server is unavailable?
By default, if a
Managed Server is unable to connect to the specified Administration Server
during startup, it can retrieve its configuration by reading a configuration
file and other files directly. You cannot change the server's configuration
until the Administration Server is available. A Managed Server that starts in
this way is running in Managed Server Independence mode.
3)What is the function
of T3 in WebLogic Server?
T3 provides a
framework for WebLogic Server messages that support for enhancements. These
enhancements include abbreviations and features, such as object replacement,
that work in the context of WebLogic Server clusters and HTTP and other product
tunneling. T3 predates Java Object Serialization and RMI, while closely tracking
and leveraging these specifications. T3 is a superset of Java Object.
Serialization or RMI; anything you can do in Java Object Serialization and RMI
can be done over T3. T3 is mandated between WebLogic Servers and between
programmatic clients and a WebLogic Server cluster. HTTP and IIOP are optional
protocols that can be used to communicate between other processes and WebLogic
Server. It depends on what you want to do. For example, when you want to
communicate between a browser and WebLogic Server-use HTTP, or an ORB and
WebLogic Server-IIOP.
4)How do you set the
classpath?
WebLogic Server
installs the following script that you can use to set the classpath that a
server requires:
WL_HOME\server\bin\setWLSEnv.cmd
(on Windows)
WL_HOME/server/bin/setWLSEnv.sh
(on UNIX)
5)How do stubs work in
a WebLogic Server cluster?
Clients that connect
to a WebLogic Server cluster and look up a clustered object obtain a
replica-aware stub for the object. This stub contains the list of available
server instances that host implementations of the object. The stub also
contains the load balancing logic for distributing the load among its host
servers.
What happens when a
failure occurs and the stub cannot connect to a WebLogic Server instance?
When the failure
occurs, the stub removes the failed server instance from its list. If there are
no servers left in its list, the stubb uses DNS again to find a running server
and obtain a current list of running instances. Also, the stub periodically refreshes
its list of available server instances in the cluster; this allows the stub to
take advantage of new servers as they are added to the cluster.
6)How does a server
know when another server is unavailable?
WebLogic Server uses
two mechanisms to determine if a given server instance is unavailable.
Each WebLogic Server
instance in a cluster uses multicast to broadcast regular "heartbeat"
messages that advertise its availability. By monitoring heartbeat messages,
server instances in a cluster determine when a server instance has failed. The
other server instances will drop a server instance from the cluster, if they do
not receive three consecutive heartbeats from that server instance
WebLogic Server also
monitors socket errors to determine the availability of a server instance. For
example, if server instance A has an open socket to server instance B, and the
socket unexpectedly closes, server A assumes that server B is offline.
7)How are
notifications made when a server is added to a cluster?
The WebLogic Server
cluster broadcasts the availability of a new server instance each time a new
instance joins the cluster. Cluster-aware stubs also periodically update their
list of available server instances.
What is difference
between welogic server and WebSphere?
WebLogic is one of the
leading J2EE™ application servers in today’s marketplace. Monitoring WebLogic
for its performance and availability becomes inevitable. Applications Manager,
a tool for monitoring the performance and availability of applications and
servers, helps in BEA WebLogic Management. WebSphere is IBM's powerful J2EE
application server that enables businesses and organizations to build robust,
Web-based applications. WebSphere, a transaction-oriented web server, allows you
to develop, launch, and integrate powerful e-business applications—customer
management systems, transaction processing, infrastructure adjustment, and many
others. This high-performance server provides solutions for connecting people,
systems, and applications with your internal and external resources.
In cluster , the load
balancing that simply redirect the client request to any available server in
weblogic server cluster. Suppose assume we have 4 managed servers and one admin
server. can we trace that request is going to which managed server in the
cluster? is it possible to tell that request is going to which ipaddr/managed
server?
whenever the request
gets routed from any Load balancer or Web-server to any application server, the
routed request contains a header part which includes information of the server
like Port, Listen address etc based on which it routes to its appropriate
server hosting application. And we can trace this information in web-server log
file.
1) What is the difference between SOA Suite
10g and 11g?
SCA architecture was followed in 11g and not in 10g
In 11g you can put all your project SOA components in
composite.xml file and deploy to single server, where in 10g you have to deploy
each component to the respective server (i.e ESB to ESB server, BPEL to BPEL
Server)
Basically all the SOA components like BPEL, ESB (Called
Mediator in 11g), & OWSM are brought into one place in 11g using SCA
composite concept.
· The major difference between 10g & 11g would be the
app server container. 10g by default runs onOC4J while 11g runs on Web logic
Server.
· In 10g every BPEL is a separate project, but in 11g
several components can make 1 project as SCA.
· In 10g consoles are separate for BPEL and ESB, but in 11g
Enterprise Manager contains all.
· In 10g we have to deploy each project separately, but in
11g we can deploy SCA which contains all.
· In 10g BAM and business rules are outside SOA Suite, but
in 11g they are in SOA Suite.
2) What is SOA?
Service Oriented Architecture (SOA) is used to develop
Enterprise applications by using a collection of services which communicates
each other. Service-Oriented Architecture (SOA) is a set of principles and
methodologies for designing and developing software in the form of
interoperable services.
3) Principles of
SOA?
· loose
coupling
· Re-usability
·
Interoperability
· Flexible
4) Is Oracle SOA same as Oracle Fusion
Middleware?
No because SOA is one of
the part in Fusion middleware and
SOA behaves like user interface where as Fusion is big
platform
5) What is SCA?
Service Component Architecture (SCA) provides a programming
model for building applications and systems based on a Service Oriented
Architecture. SCA is a model that aims to encompass a wide range of
technologies for service components and for the access methods which are used
to connect them.
6) What is Web service?
Web services are application components, which are
self-contained and self-describing and provide services based on the open
protocol communication (i.e SOAP UI, HTTP over the net).
A Web service is a method of communication between two
electronic devices over the web. A Web service is a software function provided
at a network address over the web or the cloud, it is a service that is “always
on” as in the concept of utility computing.
7) What is Mediator?
The Mediator is in charge of interconnecting, within an SOA
composite application, components that expose different interfaces. In
addition, the Mediator can perform duties such as filtering and making routing
decisions.
The composite editor in JDeveloper gives you the flexibility
to define the interface now, to choose an existing interface, or to define the
interface later as you wire components to the Mediator.
Transforming data from one representation to another is,
along with routing, one of the key functions of the Mediator.
8) Difference between ESB and Mediator?
In 10g for routing, separate router need to keep along with
ESB for routing and filter expressions.
Where as in 11g mediator contains routing rules and filter
expressions itself.
9. How can you
generate File Based Events using Oracle Service Bus?
Service Bus allows you to create Proxy Services that can
poll to ftp and sftp servers . Create a Messaging Type Proxy Service and choose
, ftp or sft as the protocol on transport configuration.
10. How can you
invoke an EJB method from Oracle Service Bus?
EJBs can be invoked as Web Services by first registering a
Business Service with ejb transport and then getting the WSDL from the Business
Service.
Basic OSB/SOA Suite 11g Interview Question with Answers:
11. How can you
achieve parallel processing in Oracle Service Bus?
Oracle Service bus has the Split Join capability. A request
can be broken to multiple childs each of which can be processed parallel and
the results can be joined and then sent to requester.
12. What is
difference between a WSDL Proxy Service and Any SOAP Proxy service?
Any SOAP proxy service can accept any payload that conforms
to SOAP schema.
13. Can you interact
directly with Database from Service Bus?
Yes by using the BEA XQuery method execute-sql
14. How can you
interact transaction ally with multiple EIS such as JMS EJB and DB in Service
Bus?
Invoke the Business Services and xqueries(for DB)
representing the different EIS in the request pipeline
15. For a Proxy
Service listening to a JMS Queue how can you ensure that the JMS Message is
retried if an error occurs during processing?
Use an XA JMS Connection factory in the jms url.
16. What purpose do
the Stage components serve in Service Bus?
They are the containers for actions. A stage is the smallest
group to have its error handling
17. How can you jump
control from one stage to next stage without using if then else logic?
Use the Skip action
18. How can you end a
Proxy flow without using if then else logic ?
By using the Reply action
19. Describe the
different sections of WSDL document?
WSDL different sections are
Type,message,porttype,binding,service.
21. What’s the main
difference from the WSDL perspective between synchronous and asynchronous
services?
Synchronous WSDL has one portType but asynchronous WSDL has
two portType
Sync operation has
input,output,fault but asynchronous operation has only input
24. In BPEL 11g, how
the fault handling is taken care of? What are those 2 xml files that will be
used in this fault handling?
There is new concept to handling the fault in BPEL 11g by
using two XML file
File names are fault-binding.xml and fault-polises.xml
25.What is a Proxy
Service?
You can think of proxy services as the services published by
OSB. Instead of your service clients calling the services directory, they call
OSB proxy services instead.
29.Where does the
Service Bus fit in the SOA landscape?
The core of SOA success depends on an Enterprise Service Bus
(ESB) that supports dynamic synergy and alignment of business process
interactions, continual evolution of existing services and rapid addition of
new ones. To realize the benefits of SOA, it is imperative that IT
organizations include a robust and intelligent service intermediary that
provides a layer of abstraction to mask the complexities of service integration
in heterogeneous IT environments,
31.What are some of
the major protocols that OSB supports?
http,jms,ftp,sftp,jca,tuxedo(Oracle Service Bus (OSB) use
Tuxedo Transport so your applications can utilize Tuxedo services from Java EE
applications via OSB proxy and business services.)
32.what is Dynamic
Routing?
Dynamic Routing is used to determine the business service at
runtime in the message flow.
36. What is
dehydration storage tables?
Dehydration store is the database where BPEL engine stores
all BPEL processes meta data and run time instance data. This data store is
installed under db schema- ORABPEL
Meta data includes bpel process descriptor (bpel.xml), human
task modelling data etc..
Run time instance data includes process instance records,
process activities execution data, invoke and call back xml messages etc.
37. How to make
partner link Dynamically?
Just go inside the property tab when you double click on the
Invoke activity, inside the property of Invoke there are different
properties(jca.file.Directory and jca.file.FileName) which you can set. Just
click on the Values text space in front of the property it will take you to
Adapter Property screen where you can browse the value forthisproperty.
44. Difference between ESB/Mediator and OSB?
ALSB (Aqua Logic Service Bus) is renamed as OSB. The ‘old’
ESB has been renamed to mediator and is now only used as component in our sca
application.
Mediator is an internal component installed as part of the
SCA Composite editor within JDeveloper. Mediator has essentially taken place of
the role of ESB in 11g and takes care of the communication brokering within an
application. Mediator is geared at being used to broker messages between
components that compliment each other and form a composite. Thus adhering to
SCA (Service Component Architecture).
Mediator also offers functionality such as
Cross Referencing (XREF) – Referencing of keys and fields
from separate systems, by means of storing a mapping table.
Domain Value Maps (DVM) – Essential DVM is used to map
information from one domain to another, this helps significantly when utilizing
Canonical Data Models.
Schema Validation – The ability to make assertions of data
types in a XML Tree.
OSB is a fully fledged standalone stateless ESB, and works
as an intermediary between service consumers. It does this by primarily working
as a proxy or a differentiated layer between the two.
What does the Mediator do?
It mediates components/services within an SOA Composite
Application.
Routes the requests to the Services
Data Transformation between formats and protocols
It DOES NOT do service localisation and it cannot act as a
Gateway to the Services.
How is it different from Oracle Service Bus?
The main difference is in the scope. Mediator performs
intra-composite mediation while Oracle Service Bus performs inter-composite
mediation which means that it mediates different composites together.
Mediator is an internal component in a composite application
and can be used to mediate between the components or the component and the
outside world. OSB is a standalone full function powerful stateless ESB that is
an intermediary between hetrogenous clients and services and is a part of
neither of them.
45. Comparison of
Oracle Mediator with Oracle Service Bus ?
Oracle Mediator is an intra-composite mediation component
that is deployed within a composite, keeping the composite on a canonical
model. Its primary function is to provide the transformation of legacy formats
to a common format. It is responsible for brokering communications between
components that make up a composite, enabling transformation, routing, event
delivery, and payload validation inside the composite
47.What are the fault
handling mechanism in SOA?
Fault Handling in a BPEL Process:
There are two categories of BPEL faults:
Business faults
Runtime faults
Business Faults:
Business faults are application-specific faults that are
generated when there is a problem with the information being processed (for
example, when a social security number is not found in the database). A
business fault occurs when an application executes a throw activity or when an
invoke activity receives a fault as a response. The fault name of a business
fault is specified by the BPEL process service component. The messageType, if
applicable, is defined in the WSDL. A business fault can be caught with a
faultHandler using the faultName and a faultVariable.
<catch faultName=”ns1:faultName”
faultVariable=”varName”>
Runtime Faults:
Runtime faults are the result of problems within the running
of the BPEL process service component or web service (for example, data cannot
be copied properly because the variable name is incorrect). These faults are
not user-defined, and are thrown by the system. They are generated if the
process tries to use a value incorrectly, a logic error occurs (such as an
endless loop), a Simple Object Access Protocol (SOAP) fault occurs in a SOAP
call, an exception is thrown by the server, and so on. These faults are
included in the http://schemas.oracle.com/bpel/extension namespace. These
faults are associated with the messageType RuntimeFaultMessage.
Some Runtime Faults:
Binding Fault: A binding Fault is thrown inside an activity
if the preparation of the invocation
Fails. For example, the WSDL of the process fails to load. A
binding Fault is not retryable. This type of fault usually must be fixed by
human intervention.
RemoteFault: A remoteFault is also thrown inside an
activity. It is thrown because the invocation fails. For example, a SOAP fault
is returned by the remote service.
ReplayFault: A replayFault replays the activity inside a
scope. At any point inside a scope, this fault is migrated up to the scope. The
server then re-executes the scope from the beginning.
48. What is WSDL and
Basic structure of WSDL?
WSDL is an XML-based language for describing Web services
and how to access them. WSDL is a document written in XML. The document
describes a Web service. It specifies the location of the service and the
operations (or methods) the service exposes.
WSDL stands for Web Services Description Language
WSDL is an XML based protocol for information exchange in
decentralized and distributed environments.
WSDL is the standard format for describing a web service.
WSDL definition describes how to access a web service and
what operations it will perform.
WSDL is a language for describing how to interface with
XML-based services.
WSDL is an integral part of UDDI, an XML-based worldwide
business registry.
WSDL is the language that UDDI uses.
WSDL was developed jointly by Microsoft and IBM.
WSDL is pronounced as ‘wiz-dull’ and spelled out as
‘W-S-D-L’
Following are the elements of WSDL document:
Definition: element must be the root element of all WSDL
documents. It defines the name of the web service, declares multiple namespaces
used throughout the remainder of the document, and contains all the service
elements described here.
Data types: the data types – in the form of XML schemas or
possibly some other mechanism – to be used in the messages
Message: an abstract definition of the data, in the form of
a message presented either as an entire document or as arguments to be mapped
to a method invocation.
Operation: the abstract definition of the operation for a
message, such as naming a method, message queue, or business process, that will
accept and process the message
Port type : an abstract set of operations mapped to one or
more end points, defining the collection of operations for a binding; the
collection of operations, because it is abstract, can be mapped to multiple
transports through various bindings.
Binding: the concrete protocol and data formats for the
operations and messages defined for a particular port type.
Port: a combination of a binding and a network address,
providing the target address of the service communication.
Service: a collection of related end points encompassing the
service definitions in the file the services map the binding to the port and
include any extensibility definitions.