Showing posts with label WEBLOGIC&SOA QUESTIONS. Show all posts
Showing posts with label WEBLOGIC&SOA QUESTIONS. Show all posts

SERVER HARDENING

 

Secops team will use some third party tools and when they run they will get risk level of CVE’s in 3 types.

 

Depending on CVSS score level of software,they will be divied in below catagiroies. As per the below link , for Oracle E-Business Suite:
https://www.inoapps.com/insights/news/oracle-has-released-their-third-cpu-of-2020-heres-your-guide-to-the-latest-updatesA maximum reported CVSS Base Score of 9.1, indicating critical vulnerability anything below that is non critical.

Critical

High

Medium

Low

Provide CVE CODE as provided below




 

 

We need to validate each CVE with the below oracle note id/read me of PSU

 




 


Also we get list from the below

https://www.rapid7.com/db/vulnerabilities/oracle-weblogic-cve-2020-5398



 



 

Also When you validate need to check BASE SCORE

 

Validated  CVE with PSU noteid

 

CVE-2017-5645 JAN-2018

CVE-2018-11058 JUL-2019

CVE-2020-2966 JUL-2020

CVE-2020-2967 JUL-2020

CVE-2020-5398 JUL-2020

CVE-2020-5398 JUL-2020

CVE-2020-9546 JUL-2020

CVE-2020-9546 JUL-2020

CVE-2020-14557 JUL-2020 SUpported version after 12.1

CVE-2020-14572,JUL-2020

CVE-2020-14588 JUL-2020

CVE-2020-14589 JUL-2020

CVE-2020-14622 JUL-2020

CVE-2020-14625 JUL-2020

CVE-2020-14644 JUL-2020

CVE-2020-14645 JUL-2020

CVE-2020-14652,JUL-2020

CVE-2020-14687 JUL-2020

 

 

EBS: CPU NOTEID

https://updates.oracle.com/Orion/Services/download?type=readme&aru=23587565

 

Notes: https://www.oracle.com/security-alerts/cpujul2020.html

1.       Outside In Technology is a suite of software development kits (SDKs). The protocol and CVSS score depend on the software that uses the Outside In Technology code. The CVSS score assumes that the software passes data received over a network directly to Outside In Technology code, but if data is not received over a network the CVSS score may be lower.

 

NODE MANAGER INSTALL/CONFIG IN WEBLOGIC


***********Uninstall / Reinstall NodeManager Service on WINDOWS***

This needs to be done if you installed Node Manager with the standard installer because by default Node Manager binds to localhost. So as more OS instances are added, it will be required to have Node Manager instances on the network communicate to each other. This can only happen if Node Manager binds to an network interface that is available remotely.

open cmd prompt
run D:\Oracle\wls11g\wlserver_10.3\server\bin\setWLSEnv.cmd
run D:\Oracle\wls11g\wlserver_10.3\server\bin\uninstallNodeMgrSvc.cmd
Make backup copy of installNodeMgrSvc.cmd
edit installNodeMgrSvc.cmd to bind to hostname for remote starts
set NODEMGR_HOST=jbayer-us
run D:\Oracle\wls11g\wlserver_10.3\server\bin\installNodeMgrSvc.cmd
start the service – mine is called “Oracle WebLogic NodeManager…” but on older versions it’s likely will start with “BEA …”
starting the NodeManager process should create the nodemanager.properties file we will edit next
CrashRecovery and StartupScriptEnabled (updated 01/10/2010)
We want to Enable NodeManager to restore servers to their last known state after a reboot.
Open nodemanager.properties from the directory D:\Oracle\wls11g\wlserver_10.3\common\nodemanager\
Change the CrashRecoveryEnabled property from false to true:
CrashRecoveryEnabled=true
Also, because the domain’s \bin\startWebLogic script already has classpath configured, which is especially helpful for use with SmartUpdate that manages WebLogic patches as those classpath’s are not trivial to understand, I strongly recommend setting StartupScriptEnabled=true StartScriptEnabled=true in nodemanager.properties (Thanks to Ray T for the typo fix 6/29/10)
stop/start node manager after making changes to nodemanager.properties
Set up the Machines
Go to the domain's AdminServer console
http://localhost:7001/console
If you need to start it, run \bin\startWebLogic.cmd
With the console navigate to -> Environment -> Machines
Create a new machine – I named mine after the hostname of the server - jbayer-us
If you have more than one OS instance, create one machine for each.
nm_machines

In console go to -> Environment -> Servers
Create a new server, example: managedServer1
Put in the listen address to the hostname you want to bind to, in my case jbayer-us
Change the port to 8001or another available port so as not to conflict with the 7001 port of the AdminServer
Assign managedServer1 it to the jbayer-us machine you just created - -> Enviornment -> Servers -> managedServer1
There should be a dropdown you can use to select the machine
Click the save button on this settings page (don't forget this step)
Now activate changes if required
We need to assign the machine for the AdminServer, this cannot be done while the AdminServer is running.

Stop AdminServer
Open the domain config, example - D:\Oracle\wls11g\user_projects\domains\my_domain\config\config.xml
Find the element used to assign the machine for managedServer1
jbayer-us
Copy that and paste that element right after the AdminServer element
If it is not already set, also specify the AdminServer listen address to be the hostname to bind to, by default it is blank which means bind to all network interfaces.
After these changes my config.xml snippet for the AdminServer looks like this:


AdminServer

jbayer-us

jbayer-us



Start the AdminServer again with the domain directory’s bin\startWebLogic.cmd
Check the console page -> Environment -> Servers to see that the servers are defined correctly as expected

Enroll the domain with Node Manager (updated 01/10/2010)
Navigate with a command prompt go to the domain directory
run bin\setDomainEnv.cmd
run java weblogic.WLST
connect to the AdminServer with your credentials:
connect('weblogic','welcome1','t3://jbayer-us:7001')
Make sure you use forward slashes instead of backslashes in Windows:
nmEnroll(domainDir='D:/Oracle/wls11g/user_projects/domains/my_domain',nmHome='D:/Oracle/wls11g/wlserver_10.3/common/nodemanager')
Now go back to the web console - http://localhost:7001, for each server in the environment, go to the server start tab and put in the appropriate values.
serverStartTabIf you are using StartScriptEnabled=true in nodemanager.properties, then the classpath and jvm arguments from the script will be used first and the values you specify on the Server Startup tab will get added to the end, so you only need to enter values that are unique to each server in the classpath and arguments section.
If you’re using Sun JDK instead of JRockit, then use –Xrs instead of –Xnohup refer to the official docs for more on this, but it has to do with handling OS signals properly.
7-2-10 update: Reader Ray T writes in with another tip:
“After some testing: starting, stopping servers, killing processes, rebooting etc after the configuration, I also found that I could not get the managed servers to shutdown cleanly - or at least the console would not recognize that they had. This had the added side effect of then not letting me start/restart a managed server via the console.

I found that also adding StopScriptEnabled=true solved that final problem.”



Click the image to enlarge – actual text values below:

Java Home

D:\Oracle\wls11g\jrockit_160_14_R27.6.5-32

Java Vendor

Oracle

BEA Home

D:\Oracle\wls11g

Root Directory

D:\Oracle\wls11g\user_projects\domains\my_domain

Classpath is empty as the script values are sufficient

Arguments

-Xnohup

Security Policy File

D:\Oracle\wls11g\wlserver_10.3\server\lib\weblogic.policy

User Name

weblogic

Password

welcome1

Confirm Password

welcome1

Save
Now do the same thing for each managed server.
Activate the changes if required

Node Manager Domain Username and Password
Set the Node Manager username/password for the domain in the console
Click in the console navigator
Select Security tab
Expand to the "Advanced" options about half-way down the page
Choose a Node Manager username/password and put it in the username/password/confirm boxes your credentials, these could be unique from your user used to start the AdminServer, but I chose to keep mine the same weblogic/welcome1.  If you change this user name and password, then you’ll need to specify both when using the command nmConnect().  Thanks Ray T for the catch - 6/29/10.

Decrease Log Verbosity For Standard OutnmCriticalLogSetting
In console, go to each server's Logging -> General page
Expand to the Advanced section half-way down the page
Change the standard out notice level to "Critical"
This log file that captures Standard Out does not roll over while a server is running, so it's really important to make sure this file doesn't get too large. Note that this is not the server log file, this is only standard out.



Have NodeManager Start and Stop the Servers
If it is running, shutdown the AdminServer
Start the AdminServer with NodeManager
Go to domain dir
run bin\setDomainEnv.cmd
run java weblogic.WLST
nmConnect(domainName='my_domain')  nmConnect(domainName=’my_domain’, username=’weblogic’, password=’welcome1’)  6/29/10 Updated thanks to Ray T who noticed that if you change the domain’s Node Manager user and password in the section above called “Node Manager Username and Password” that you’ll need to specify those values here otherwise the defaults of weblogic/welcome1 are used, which worked in my case, but not for others.
nmStart('AdminServer')
Go to console -> Environment -> Servers control tab and start the managed server from the console. It will send a command to Node Manager which actually performs the operation on the console's behalf.
Gotcha! – If you have never started the managed server ever before and you try to start it from Node Manager, you might get an error.  In the server log it mjght say something like: Booting as admin server, but servername, managedServer1, does not match the admin server name, AdminServer  To get around this, simply start the Managed Server for the first time using either the Admin Console Servers->Control tab or the startManagedWebLogic.cmd script.  Subsequent nmStart commands should not have this issue any longer.

Test Killing and Restarting
If the servers are started successfully by Node Manager, try and kill a process from task manager and see if it restarts.

Looking at the Node Manager directory in the domain for each Managed Server, you will be able to see the state - below is a screenshot of managedServer1's files. The PID and .state files should tell you what you need to know to see if the server recovered.  If it did not, the .out file in the server log directory should hopefully give you a clue why.

nmDir

If manual killing of the process restarts a Server then you are ready to test an operating system reboot. Reboot the machine without stopping the WebLogic Servers. Each server should be restored to the state that it was in when the OS was rebooted.

How to Enroll a Node Manager in weblogic?
========================================================================
Applies to:
Weblogic: 10.3.6 and later
========================================================================
nmEnroll is used to enroll a machine or a domain with the node manager.
Few of us may forget to configure NodeManager after installing Weblogic server. Follow below steps to enroll nodemanager manually in weblogic.
1. Create a Machine:
     • Login to weblogic console
     • Click on Lock & Edit button in change center.
     • Go to Environment -> Machines -> click New
     • Provide name and select machine OS
     • Click Next
     • Select type, provide host and port details for node manager and click Finish
     • Click Activate Changes.

2. Configure node manager username and password:
     • Login to weblogic console and take lock & edit.
     • Under domain Structure click on domain_name on left hand side.
     • Go to security tab and click on Advanced.
     • Configure/update NodeManager Username and password.
     • Click save and click Active Changes.

3. Enroll Node Manager:
     • Make sure admin server is up and running.
     • Login to host
     • Go to $ORACLE_HOME/oracle_common/common/bin and run ./wlst.sh
     • Use Connect command to connect to admin server
        connect('','','t3://:')
     • Run nmEnroll
        nmEnroll('', '')
        E.g.
        nmEnroll('/u01/Oracle/Middleware/user_projects/domains/base_domain',                '/u01/Oracle/Middleware/wlserver_10.3/common/nodemanager')
     • Once it is Successfully enrolled to machine with the domain directory check
        $WL_Home/common/nodemanager/nodemanager.domains file. It should have domain entry.
     • Set StartScriptEnabled=true and StopScriptEnabled=true in $WL_Home/common/nodemanager/nodemanager.properties file.
     • Restart the nodemanager and check the status in weblogic console if it is in active status or not.
     • Go to Environment -> Machines -> Click on Machine name
     • Go to Monitoring tab and verify Node Manager Status


Note 1 -

If you are getting below error during connect with node manager, then it means you haven't changed username,password for nodemanager from admin console ( above step 6 )

WLSTException: Error occured while performing nmConnect : Cannot connect to Node Manager. : Access to domain 'base_domain' for user 'weblogic' denied

Note 2 -

If you are getting below error during connect of node manager then it mean you haven't followed above defined steps OR haven't added your domain on nodemanager.domains


WLSTException: Error occured while performing nmConnect : Cannot connect to Node Manager. : Configuration error while reading domain directory

REALTIME ISSUES - WEBLOGIC

Weblogic :

1.MACHINE IS INCOMPATABLE STATUS (2020154.1)

managedserver.log  ----OUTPUT

<May 2, 2019 10:04:00 PM BST> <Error> <NodeManager> <BEA-300034> <Could not execute command "kill" for server "P6_PRM1" using the node manager. Reason: Server 'P6_PRM1' is not currently running.>
<May 2, 2019 10:04:12 PM BST> <Error> <NodeManager> <BEA-300048> <Unable to start the server P6_PRM1 : Exception while starting server 'P6_PRM1'>
<May 2, 2019 10:06:57 PM BST> <Error> <NodeManager> <BEA-300034> <Could not execute command "kill" for server "P6_PR_REP1_DS" using the node manager. Reason: Server 'P6_PR_REP1_DS' is not currently running.>
<May 2, 2019 10:07:07 PM BST> <Error> <NodeManager> <BEA-300048> <Unable to start the server P6_PR_REP1_DS : Exception while starting server 'P6_PR_REP1_DS'>
<May 2, 2019 10:11:40 PM BST> <Error> <NodeManager> <BEA-300034> <Could not execute command "kill" for server "P6_WEB_SRV1" using the node manager. Reason: Server 'P6_WEB_SRV1' is not currently running.>
<May 2, 2019 10:11:50 PM BST> <Error> <NodeManager> <BEA-300048> <Unable to start the server P6_WEB_SRV1 : Exception while starting server 'P6_WEB_SRV1'>
<May 3, 2019 6:52:12 AM BST> <Error> <HTTP> <BEA-101215> <Malformed Request "/<script>alert(53416)</script>". Request parsing failed, Code: -1>
<May 3, 2019 7:02:07 AM BST> <Error> <RJVM> <BEA-000503> <Incoming message header or abbreviation processing failed
 java.io.InvalidClassException: sun.rmi.server.UnicastRef; Unauthorized deserialization attempt
java.io.InvalidClassException: sun.rmi.server.UnicastRef; Unauthorized deserialization attempt
        at weblogic.utils.io.oif.WebLogicObjectInputFilter.checkLegacyBlacklistIfNeeded(WebLogicObjectInputFilter.java:236)
        at weblogic.utils.io.FilteringObjectInputStream.checkLegacyBlacklistIfNeeded(FilteringObjectInputStream.java:54)
        at weblogic.rjvm.InboundMsgAbbrev$ServerChannelInputStream.resolveClass(InboundMsgAbbrev.java:122)
        at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1612)
        at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517)
        Truncated. see log file for complete stacktrace
>
<May 3, 2019 10:04:00 PM BST> <Error> <NodeManager> <BEA-300034> <Could not execute command "kill" for server "P6_PRM1" using the node manager. Reason: Server 'P6_PRM1' is not currently running.>
<May 3, 2019 10:04:11 PM BST> <Error> <NodeManager> <BEA-300048> <Unable to start the server P6_PRM1 : Exception while starting server 'P6_PRM1'>
<May 3, 2019 10:06:53 PM BST> <Error> <NodeManager> <BEA-300034> <Could not execute command "kill" for server "P6_PR_REP1_DS" using the node manager. Reason: Server 'P6_PR_REP1_DS' is not currently running.>
<May 3, 2019 10:07:03 PM BST> <Error> <NodeManager> <BEA-300048> <Unable to start the server P6_PR_REP1_DS : Exception while starting server 'P6_PR_REP1_DS'>
<May 3, 2019 10:11:30 PM BST> <Error> <NodeManager> <BEA-300034> <Could not execute command "kill" for server "P6_WEB_SRV1" using the node manager. Reason: Server 'P6_WEB_SRV1' is not currently running.>
<May 3, 2019 10:11:40 PM BST> <Error> <NodeManager> <BEA-300048> <Unable to start the server P6_WEB_SRV1 : Exception while starting server 'P6_WEB_SRV1'>

************
<May 3, 2019 10:04:10 PM BST> <Critical> <WebLogicServer> <BEA-000386> <Server subsystem failed. Reason: weblogic.security.SecurityInitializationException: Authentication denied: Boot identity not valid; The user name and/or password from the boot identity file (boot.properties) is not valid. The boot identity may have been changed since the boot identity file was created. Please edit and update the boot identity file with the proper values of username and password. The first time the updated boot identity file is used to start the server, these new values are encrypted.
weblogic.security.SecurityInitializationException: Authentication denied: Boot identity not valid; The user name and/or password from the boot identity file (boot.properties) is not valid. The boot identity may have been changed since the boot identity file was created. Please edit and update the boot identity file with the proper values of username and password. The first time the updated boot identity file is used to start the server, these new values are encrypted.
        at weblogic.security.service.CommonSecurityServiceManagerDelegateImpl.doBootAuthorization(CommonSecurityServiceManagerDelegateImpl.java:960)
        at weblogic.security.service.CommonSecurityServiceManagerDelegateImpl.initialize(CommonSecurityServiceManagerDelegateImpl.java:1054)
        at weblogic.security.service.SecurityServiceManager.initialize(SecurityServiceManager.java:888)
        at weblogic.security.SecurityService.start(SecurityService.java:141)
        at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
        Truncated. see log file for complete stacktrace
Caused By: javax.security.auth.login.FailedLoginException: [Security:090303]Authentication



FIX is either boot.properties file or ldap under domain_name/servers/managedserver/data

moved ldap to ldapbkp and created ldap direcotry again by using mkdir command
[XXXXXXXd1@XXXXXXX6 data]$ ls
ldap  ldapbkp  nodemanager  store
[XXXXXXXd1@XXXXXXX6 data]$ pwd
/XXXXXXXd1/primapp/XXXXXXXppm/domain/XXXXXXXppm83/servers/P6_PRM1/data


copied the correct boot.properties file from another running managed server
[XXXXXXXd1@XXXXXXX6 nodemanager]$ ls
boot.properties  boot.propertiesbkp  P6_PRM1.lck  P6_PRM1.pid  P6_PRM1.state  P6_PRM1.statebkp  P6_PRM1.url  startup.properties
[XXXXXXXd1@XXXXXXX6 nodemanager]$


NOTE:Also you can try managedserver.state file remove and strat from console



ORACLE CLOUD RECOVERY ISSUE


****DCS-10045:Validation error encountered: Backup type is invalid.****


[root@testbackupdb ~]# dbcli list-jobs

ID                                       Description                                                                 Created                             Status
---------------------------------------- --------------------------------------------------------------------------- ----------------------------------- ----------
7182911b-1733-4805-b351-081f6be6605b     Authentication key update for DCS_ADMIN                                     May 5, 2019 4:09:58 PM UTC          Success
ce8f602b-84c7-4295-982a-49098dca465d     Provisioning service creation                                               May 5, 2019 4:11:41 PM UTC          Success
47876bcb-50a5-42ac-9648-52221a12a974     SSH keys update                                                             May 5, 2019 5:03:22 PM UTC          Success
9d01bc5f-0831-48ed-a1fc-f0982e54feaa     SSH key delete                                                              May 5, 2019 5:05:14 PM UTC          Success
80f9b24e-1061-4906-88d1-78f6b824b454     create object store:b9a7iawWuBfGYFaNH7MC                                    May 6, 2019 3:14:45 AM UTC          Success
25845fda-ea88-40b0-bb54-3be86ec265f6     create backup config:b9a7iawWuBfGYFaNH7MC_BC                                May 6, 2019 3:15:31 AM UTC          Success
64903937-7519-415b-b658-186cc6bebbdd     update database : BKUPDB                                                    May 6, 2019 3:16:23 AM UTC          Success
f3d0309f-3bf0-4ec2-b3d7-2d2fcde8599f     Server Patching                                                             May 6, 2019 3:19:53 AM UTC          Success
4fa3b016-8448-4535-b901-a5edd6dc2c1c     Create Regular-L0 Backup with TAG-DBTRegular-L01557111640379VSL for Db:BKUPDB in OSS:b9a7iawWuBfGYFaNH7MC May 6, 2019 3:19:56 AM UTC          Success
5e902ca8-f332-4c7f-86ca-afca1590e4b9     Delete Backup for Database name: BKUPDB_fra1k8                              May 6, 2019 3:26:48 AM UTC          Success
251ba542-234e-40f6-a7a9-f3a1ef281cb8     DB Home Prechecks                                                           May 6, 2019 5:05:43 AM UTC          Success
bc5eb7cd-b320-453f-8dea-e296e645df58     Create Longterm Backup with TAG-DBTLongterm1557125463725Zmf for Db:BKUPDB in OSS:b9a7iawWuBfGYFaNH7MC May 6, 2019 6:52:12 AM UTC          Success
43a924a2-6e16-43e0-a2e9-cc4cd1d6b53f     Delete Backup for Database name: BKUPDB_fra1k8                              May 6, 2019 7:05:18 AM UTC          Success
eefab9b7-2b32-4327-9eff-bf55d99ca7eb     Create recovery-pitr : time '05/06/2019 07:10:08' for db : BKUPDB           May 6, 2019 7:10:57 AM UTC          Failure

[root@testbackupdb ~]# dbcli describe-job  --jobid eefab9b7-2b32-4327-9eff-bf55d99ca7eb

Job details
----------------------------------------------------------------
                     ID:  eefab9b7-2b32-4327-9eff-bf55d99ca7eb
            Description:  Create recovery-pitr : time '05/06/2019 07:10:08' for db : BKUPDB
                 Status:  Failure
                Created:  May 6, 2019 7:10:57 AM UTC
                Message:  DCS-10001:Internal error encountered: Failed to run RMAN command. Please refer log at location : testbackupdb: /opt/oracle/dcs/log/testbackupdb/rman/bkup/BKUPDB_fra1k8/rman_restore_2019-05-06_07-12-23-4741329873884168661.log.Failed to do restore validati

Task Name                                Start Time                          End Time                            Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------
task:TaskZLockWrapper_7173               May 6, 2019 7:11:07 AM UTC          May 6, 2019 7:12:37 AM UTC          Failure
task:TaskSequential_7174                 May 6, 2019 7:11:07 AM UTC          May 6, 2019 7:12:37 AM UTC          Failure
Database recovery validation             May 6, 2019 7:11:08 AM UTC          May 6, 2019 7:12:37 AM UTC          Failure

[
ISSUE is #####rman log error#showing inorder recovery of scn#####

validation succeeded for archived log
recovery will be done up to SCN 1761481
Media recovery start SCN is 1760987
Recovery must be done beyond SCN 1761012 to clear datafile fuzziness
could not locate pieces of backup set key 20
validation succeeded for backup piece
Finished restore at 2019/05/06 07:12:36

Recovery Manager complete.

we have used until time "05/06/2019 07:10:08"


SQL> select sequence#,first_change#,next_change# from v$log order by 1;

 SEQUENCE# FIRST_CHANGE# NEXT_CHANGE#
---------- ------------- ------------
        18       1761147      1761155
        19       1761155      1761444
        20       1761444   2.8147E+14


FIX : so i restored using until scn 1761444 

[root@testbackupdb ~]# dbcli list-jobs

ID                                       Description                                                                 Created                             Status
---------------------------------------- --------------------------------------------------------------------------- ----------------------------------- ----------
7182911b-1733-4805-b351-081f6be6605b     Authentication key update for DCS_ADMIN                                     May 5, 2019 4:09:58 PM UTC          Success
ce8f602b-84c7-4295-982a-49098dca465d     Provisioning service creation                                               May 5, 2019 4:11:41 PM UTC          Success
47876bcb-50a5-42ac-9648-52221a12a974     SSH keys update                                                             May 5, 2019 5:03:22 PM UTC          Success
9d01bc5f-0831-48ed-a1fc-f0982e54feaa     SSH key delete                                                              May 5, 2019 5:05:14 PM UTC          Success
80f9b24e-1061-4906-88d1-78f6b824b454     create object store:b9a7iawWuBfGYFaNH7MC                                    May 6, 2019 3:14:45 AM UTC          Success
25845fda-ea88-40b0-bb54-3be86ec265f6     create backup config:b9a7iawWuBfGYFaNH7MC_BC                                May 6, 2019 3:15:31 AM UTC          Success
64903937-7519-415b-b658-186cc6bebbdd     update database : BKUPDB                                                    May 6, 2019 3:16:23 AM UTC          Success
f3d0309f-3bf0-4ec2-b3d7-2d2fcde8599f     Server Patching                                                             May 6, 2019 3:19:53 AM UTC          Success
4fa3b016-8448-4535-b901-a5edd6dc2c1c     Create Regular-L0 Backup with TAG-DBTRegular-L01557111640379VSL for Db:BKUPDB in OSS:b9a7iawWuBfGYFaNH7MC May 6, 2019 3:19:56 AM UTC          Success
5e902ca8-f332-4c7f-86ca-afca1590e4b9     Delete Backup for Database name: BKUPDB_fra1k8                              May 6, 2019 3:26:48 AM UTC          Success
251ba542-234e-40f6-a7a9-f3a1ef281cb8     DB Home Prechecks                                                           May 6, 2019 5:05:43 AM UTC          Success
bc5eb7cd-b320-453f-8dea-e296e645df58     Create Longterm Backup with TAG-DBTLongterm1557125463725Zmf for Db:BKUPDB in OSS:b9a7iawWuBfGYFaNH7MC May 6, 2019 6:52:12 AM UTC          Success
43a924a2-6e16-43e0-a2e9-cc4cd1d6b53f     Delete Backup for Database name: BKUPDB_fra1k8                              May 6, 2019 7:05:18 AM UTC          Success
eefab9b7-2b32-4327-9eff-bf55d99ca7eb     Create recovery-pitr : time '05/06/2019 07:10:08' for db : BKUPDB           May 6, 2019 7:10:57 AM UTC          Failure
eab18e5c-ea75-41dd-a4ed-98aa209f2132     Create detailed Backup Report                                               May 7, 2019 2:16:37 AM UTC          Success
f22341d1-d835-4828-8bf3-b1d8f0158c9b     Create recovery-latest for db : BKUPDB                                      May 7, 2019 2:45:07 AM UTC          Failure
65f2fcf5-776c-4630-ab8f-76975ab0b935     Create recovery-scn : scn 1761444 for db : BKUPDB                           May 7, 2019 2:57:46 AM UTC          Success




[root@testbackupdb ~]# dbcli describe-job --jobid 65f2fcf5-776c-4630-ab8f-76975ab0b935

Job details
----------------------------------------------------------------
                     ID:  65f2fcf5-776c-4630-ab8f-76975ab0b935
            Description:  Create recovery-scn : scn 1761444 for db : BKUPDB
                 Status:  Running
                Created:  May 7, 2019 2:57:46 AM UTC
                Message:

Task Name                                Start Time                          End Time                            Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------
Database recovery validation             May 7, 2019 2:57:58 AM UTC          May 7, 2019 2:59:37 AM UTC          Success
Database recovery                        May 7, 2019 2:59:38 AM UTC          May 7, 2019 2:59:38 AM UTC          Running

[root@testbackupdb ~]# dbcli describe-job --jobid 65f2fcf5-776c-4630-ab8f-76975ab0b935

Job details
----------------------------------------------------------------
                     ID:  65f2fcf5-776c-4630-ab8f-76975ab0b935
            Description:  Create recovery-scn : scn 1761444 for db : BKUPDB
                 Status:  Success
                Created:  May 7, 2019 2:57:46 AM UTC
                Message:

Task Name                                Start Time                          End Time                            Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------
Database recovery validation             May 7, 2019 2:57:58 AM UTC          May 7, 2019 2:59:37 AM UTC          Success
Database recovery                        May 7, 2019 2:59:38 AM UTC          May 7, 2019 3:02:47 AM UTC          Success
Enable block change tracking             May 7, 2019 3:02:47 AM UTC          May 7, 2019 3:02:50 AM UTC          Success
Database opening                         May 7, 2019 3:02:50 AM UTC          May 7, 2019 3:03:44 AM UTC          Success
Database restart                         May 7, 2019 3:03:44 AM UTC          May 7, 2019 3:05:06 AM UTC          Success
Recovery metadata persistance            May 7, 2019 3:05:06 AM UTC          May 7, 2019 3:05:06 AM UTC          Success

[root@testbackupdb ~]#



SOA INTERVIEW

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.